Назад | Перейти на главную страницу

Asterisk не может отправлять факсы через T.38

Я новичок на звездочке. когда я пытался отправить факс, у меня не получалось. После долгих исследований я решил задать свой вопрос здесь.

Я надеюсь, что кто-нибудь может подсказать мне, как исправить мою конфигурацию. наконец, я хочу, чтобы моя система могла отправлять факс по тел.38.

Большое спасибо!

Вот деталь:

моя система: Ubuntu 14.04 + звездочка 11.7

Я использую apt-get для установки версии asterisk 11.7 по умолчанию для ubuntu. для легкой отладки я просто меняю несколько значений параметров на версию по умолчанию

sip.conf

t38pt_udptl = yes,redundancy,maxdatagram=400
faxdetect = yes

extension.conf

[sendFAX]
exten => s,1,VERBOSE(sending fax...)
exten => s,n,Set(FAXOPT(headerinfo)=Fax from a Demo test)
exten => s,n,SendFAX(/tmp/demo.tiff,f)
;I get demo.tiff file from "$ gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=letter -sOutputFile=<dest> <src>"
exten => s,n,VERBOSE(ok!)
exten => s,n,Hangup

Я использую AMI для отправки факсимильного вызова. В CLI все хорошо выглядит. Я не получал сообщения об ошибке. Когда я использую wirehark для проверки деталей этого взаимодействия, я обнаружил, что Asterisk использует G711 вместо T.38, как ожидалось.

однако на стороне получателя я не получил факс и получил сообщение об ошибке «Dcn No Dis»

После исследования я получил следующее:

Сигнальные сообщения факсимильного сообщения T.30 В факсимильном вызове Voip пакетам T.38 предшествуют и после них идут сигнальные сообщения факса T.30. Эти сообщения включают:

  1. DIS: Цифровой идентификационный сигнал, указывающий на завершающие возможности факса (например, скорость передачи данных)
  2. DCS: цифровой командный сигнал, указывающий режим передачи, который будет использоваться исходящим факсом (например, скорость передачи)
  3. TCF: последовательности проверки обучения (отправляются в течение 1,5 секунд)
  4. CFR: Confirmation To Receive указывает, что принимающий факс готов принять документ.
  5. MPS: многостраничный сигнал (отправляется после каждой страницы, если отправлено более одной страницы)
  6. MCF: Подтверждение сообщения, указывающее, что страница была получена
  7. EOP: сообщение о завершении процедуры, указывающее, что больше нет страниц для отправки
  8. DCN: сообщение об отключении

Дополнительные необязательные сообщения:

1.CSI: идентификация вызываемого абонента

2.TSI: Идентификация передающего абонента

Но я все еще не понимаю, что означает «Dcn No Dis», что не так с моей системой звездочки.

Я уверен в этом:

  1. ресивер исправен.
  2. Мой провайдер Интернет-услуг полностью поддерживает терминацию факса как в g711, так и в t.38.
  3. Мой тестовый сервер не защищен брандмауэром.

В demo.jpg это скриншот моего wirehark. form 19 до 1841, весь трафик - пакет RTP.

В t.38 png На диаграмме показан типичный факсимильный вызов.

Основные проблемы с t.38 следующие

1) по умолчанию asterisk скомпилирована без поддержки spandsp, поэтому нет t.38

2) даже если вы это скомпилировали, ваша строка t38udpl должна быть ТОЧНОЙ, как ожидал провайдер. Любая единственная ошибка параметра может привести к тому, что t.38 не работает

3) при исходящем вызове т.38 инициируется ВЫЗЫВАЕМЫЙ стороной. Поэтому, если ваш провайдер НЕ обнаруживает факс или НЕ запрашивает переключение звездочки на t.38, звездочка этого не сделает.

4) Создание t.38 было выполнено с использованием некоторых переменных (T38CALL = 1 в звездочке 1.8, не проверено, что есть в версии 11) и с использованием раздела провайдера, а не ip.

http://www.voip-info.org/wiki/view/Asterisk+T.38

ДИСКАЛИМЕР: вызовы T38 - одна из самых сложных частей asterisk, более сложные только две темы - видеозвонки h323 и webrtc.