|
|||||||||||||||||||||||||||||||||||||||||||||||||||
![]()
Mobile LinuxOpen (test version) |
FreeSWITCH, факсыМне нравится:
Временное отсутствие T.38 в FreeSWITCH я не считаю большой проблемой - на сегодняшний день лучше всего передаются факсы при использовании кодека G.711. T.38 будет реализован в обозримом будущем, а пока я опишу то, что уже есть.
В FreeSWITCH был добавлен модуль mod_fax. Он предоставляет две функции - txfax и rxfax. На текущий момент поддерживается протокол T.30. Пример из wiki:
<extension name="fax"> <condition expression="^fax$" field="destination_number"> <action application="answer"> <action data="silence_stream://2000" application="playback"> <action data="/usr/local/freeswitch/fax/${caller_id_number}-${strftime(%Y-%m-%d-%H-%M-%S)}.tiff" application="rxfax"> <action application="hangup"></action></action> Обнаружение передачи факса. FreeSWITCH предоставляет специальную функцию для обнаружения тоновых сигналов в голосовом потоке - tone_detect.
<extension name="5555555"> <condition expression="^(5555555)$" field="destination_number"> <action data="fax 1100 r +5000 transfer fax XML default" application="tone_detect"> <action application="answer"> <action data="1000" application="sleep"> <action data="main" application="ivr"> <action application="hangup"></action></action> <extension name="fax"> <condition expression="^fax$" field="destination_number"> <action application="answer"> <action data="silence_stream://2000" application="playback"> <action data="/usr/local/freeswitch/fax/${caller_id_number}-${strftime(%Y-%m-%d-%H-%M-%S)}.tiff" application="rxfax"> <action application="hangup"></action></action> А можно поставить обнаружение на всю сессию:
<!-- continue="true" - означает, что надо продолжить выполнение номерного плана после этого пункта --> <extension continue="true" name="fax_tone_detect_permanent"> <!-- ловим любые звонки, так как .* означает любое кол-во любых символов --> <condition expression="^.*$" field="destination_number"> <!-- ставим обнаружение тона 1100 со стороны звонящего(r) бесконечное время(0) В случае обнаружения тона передаем (transfer) на обработку в "default" номерной план с номером "fax" --> <action data="fax 1100 r 0 transfer fax XML default" application="tone_detect"></action></condition> Таким образом прием факсов в FreeSWITCH организовать достаточно легко. Надеюсь реализация T.38 не заставит себя долго ждать. Слабым местом пока остается поддержка кодеков. Все заинтересованные уже знакомы с патентной системой США - практически все дистрибутивы в нашей стране имеют "поддержку кодеков из коробки". G.729, G.723, AMR сейчас поддерживаются только в режиме без перекодирования. То есть использовать с этими кодеками голосовую почту, голосовые меню, запись разговоров затруднительно. Заколдованый круг - пока FreeSWITCH не поддерживает кодеки он не очень интересен у нас. А пока он не очень интересен - кодеки реализовывать некому. Deepwalker
Похожие статьиКомментировать:
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|