Пассаж про то, что alaw является «родным кодеком факсов» — не совсем верен. Факс шпарит в аналоговом виде и никаким кодеком не пользуется, что очевидно.
Здесь alaw или ulaw важны потому, что не осуществляют спектральной фильтрации звукового потока, а передают в чистом виде 8кГц 8 бит — именно поэтому (и также по теореме Найквиста-Котельникова), все факсовые писки-визги удается точно перевести в цифру и восстановить на другом конце.
Это же относится и к передаче DTMF не внутри информационного потока, а внутри звукового (у вас именно так и настроено, dtmfmode = rfc2833)- только эти два кодека в состоянии это обеспечить. Остальные кодеки, которые вы перечислили, информационный поток исказят и обмен не состоится — их нужно отключить.
Логично. Если у провайдера нет T.38, то он и не заведется.
Мы специально искали, а то 90% обращений были факсы. При видимой 100% работе сети разные факсы (старые панасоники и т.д.) работали 50 на 50.
Так вы ошибку с кодеками устранять будете? Если вашим скриптом воспользуются люди, у которых провайдер не предоставляет доступ с кодеками без компрессии (alaw, ulaw у него — выключены), у них ничего работать не будет.
Как верно заметил Calc, «родным» способом для передачи факсов по IP является T.38, а не засовывание их в голосовой несжатый тракт.
Я жеж написал — факс (и DTMF) идет только потому, что у вас включен кодек без компрессии, но при этом в том же самом конфиге у вас разрешены кодеки с компрессией (gsm, g723), которые факс в жизни не пропустят.
либо отключите в конфиге любые кодеки, кроме alaw и напишите большими буквами в посте, что способ работает только в случае, когда провайдер умеет работать на кодеках без сжатия,
либо настройте работу правильно — с использованием протокола T.38
Вижу, на один конкретный номер с факсом у вас оставлен только alaw. Извините, читал мельком.
Это конечно же хорошо, но правильнее было бы использовать T.38. Осталось только написать, что если провайдер не работает по alaw/ulaw, ваш способ — не годится.
Правильно ли я понял, что легко возникают «гонки»? В случае если один пользователь принимает факс, а другой его отправляет? Ибо факсы принимаются и отправляются из одного каталога, а какого-либо разграничения на send/receive нет?
конечно разделить можно и нужно. у меня например у каждого СИП аккаунта свой факс. и факсы отправляются из своего каталога. имена факсов уникальные, ну и все настроено так что юзер отправит/примет только свой факс.
но это требует доп. настройки
да это заметка елки-палки. самое простое решение. сейчас например у меня у каждого юзера свой СИП аккаунт и только из этой папки отправляютися/принимаются факсы. и потом на джабер аккаунт юзера скидывается сообщение что мол отправлено туда то, столько-то страниц на такой то номер
а да и еще, приходящие факсы (что бы не путались когда какой пришел) — имя файля PDF в виде дата+время до секунды.PDF
Я не знаю, как у вас, а у нас через Сипнет факсы не ходят. Ну, то есть, не то чтобы совсем не ходят, но где-то 30/70, где 70 — отвал сессии с ошибкой.
Пробовал и Т.38, и alaw/ulaw, все едино.
Потом перешел на другого оператора, у которого Т.38 заявлено, и жизнь наладилась.
А факсы мы используем для взаимодействия с охраной БЦ, в котором сидим. XXI век, центр Москвы…
шлю факсы ну примерно… месяца 2-3. так вот где то…
причем отправляет/ принимает по 5-10 страниц спокойно. отправоек/приемов было где то штук 20-25. и (я могу ошибиться конечно), но 98% проходили нормально
1) зависит от провайдера
2) зависит от провайдера клиента
Схема прохода сигнала может быть самая разнообразная:
SIP->T38->E1->T38->SIP //пройдет
SIP->ulaw->alaw->g729->SIP //не пройдет
SIP->T38->E1->alaw->SIP //высокий шанс, от буфферов/джиттеров завити, т.е качество связи
SIP->alaw->E1->T38->SIP //тоже самое
SIP->T38->E1->медь //пройдет
SIP->alaw->E1->медь //качество связи
и т.д.
Везде в цепочке, где речь идет об alaw или ulaw, необходимо, чтобы RTP-пакеты почти не терялись. То есть если соединение с провайдером идет через Интернет без QoS и по alaw/ulaw, возможна нестабильность.
Asterisk. Отправка и прием факсов