В исходниках ooh323 в файле ooq931.c есть следующее условие:
if (gH323ep.bearercap == Q931TransferUnrestrictedDigital) { ret = ooSetBearerCapabilityIE (q931msg, Q931CCITTStd, Q931TransferUnrestrictedDigital, Q931TransferPacketMode, Q931TransferPacketMode, Q931UserInfoLayer1G722G725); } else { ret = ooSetBearerCapabilityIE (q931msg, Q931CCITTStd, Q931TransferSpeech, Q931TransferCircuitMode, Q931TransferRate64Kbps, Q931UserInfoLayer1G711ULaw); }
что и где надо прописать, чтобы условие не выполнялось, т.е. выполнялась ветка else.
Небольшое пояснение:
есть Elastix<->Avaya
при транзитном звонке Avaya ругается и обрывает связь. Это известная проблема, решение описано, например, здесь - http://fonality.com/trixbox/forums/trixbox-forums/h-323/avaya-ipoffice-pri-outbound-and-ooh323-q931
Ещё пояснение:
входящие звонки (с авайи на *) - ходят без проблем
исходящие "внутренние" звонки (с * на авайю по внутренней адресации) - всё работает
исходящие "внешние" - сразу обрыв связи
телефонисты мне написали следующее:
Проблема в коде OOH323, там когда устанавливаются параметры H.225/Q.931 - в поля BCC ставят информацию о том что вызов идёт через Packet-Switching. Avaya не умеет преобразовывать этот элемент в Circuit-Switching, и об этом Вам в трассере и рассказывает - Incompatible BCC. Лечится исправлением кусочка кода chan_ooh323.c.
К сожалению к авайе я доступа не имею а телефонисты валят на то, что астериск - не сертифицирован для работы с авайа и типа - правь у себя.
[general]
bindaddr=x.x.x.x
port=1720
faststart=yes
mediawaitforconnect=yes
h323id=Asterisk
callerid=
gatekeeper=no
context=sip
disallow=all
allow=ulaw
dtmfmode=inband
h245Tunneling = yes
amaflags=default
[y.y.y.y]
type=friend
context=sip
host=y.y.y.y
port=1720
disallow=all
allow=ulaw
система gentoo linux, asterisk-1.6.2.71.1 (ранее 1.6.2.9 и 1.6.2.13) , asterisk-addons-1.6.2.3 (ранее 1.6.2.1 и 1.6.2.2), более 500 рыл полет нормальный - и в город и из города через аваю :) что я не так делаю ? :) В прочем у криворуких редхатовцев вечно что-то болеет-отваливается и собрано без половины патчей :))
Проблему решил следующим образом: у меня стоял Elastix 1.6 (вроде) и я накатывал все обновления. (не работало) Сохранил настройки, форматнул винчестер, поставил Elastix 2.0, вернул настройки - заработало))) НО!!! не работает dtmf пересылка с ip-телефона на внешний номер. т.е. звонишь куда-нибудь - там просят набрать добавочный номер - не проходит. Вот мои настройки ooh323.conf:
[general]
port = 1720
bindaddr = x.x.x.x
disallow=all
allow=alaw
dtmfmode=inband
;h245signal
gatekeeper = no
AcceptAnonymous = no
context=from-pstn
progress_setup = 8
progress_alert = 8
h245Tunneling = yes
fastStart = yes
amaflags=default
[avaya]
type=friend
context=avaya
host=x.x.x.x
port=1720
disallow=all
allow=alaw
allow=ulaw
allow=g711a
allow=g729
allow=gsm
dtmfmode=inband
faststart=no
h245Tunneling = yes
[codecs]
codek=G729
frames=6
codek=G711A
frames=6
codek=G711U
frames=6
codek=G729A
frames=6
codek=G729B
frames=6
codek=G729AB
frames=6
codek=GSM0610
frames=4
codek=G7231
frames=4
Задан: 2011-04-05 15:53:24 +0400
Просмотрен: 516 раз
Обновлен: Apr 18 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.