Гуру телефонии, подскажите. До недавнего времени в Астериске пользовался только alaw/ulaw кодеками, но вот возникла необходимость добавить нетребовательные к трафику кодеки и был выбран iLBC. Теперь не знаю как разрулить проблему когда у одного пира кодек ulaw (например) а у второго iLBC. Конкретно - есть астериск, у него 2 пира в sip.conf:
[101]
context=offices
type=friend
auth=md5
username=101
secret=XXX
callerid="101" <101>
host=dynamic
canreinvite=no
disallow=all
allow=ilbc
allow=ulaw
allow=alaw
nat=yes
transport=udp
[102]
context=offices
type=friend
auth=md5
username=102
secret=XXX
callerid="102" <102>
host=dynamic
canreinvite=no
disallow=all
allow=ilbc
allow=ulaw
allow=alaw
nat=yes
transport=udp
В данном случае 101 использует софтфон от Acrobits, а 102 - бородатая Cisco ATA186. При вызове с 101 (на 101 кодек iLBC) на 102 сразу получаем отлуп - «Circuit/channel congestion» (занято), а вот если наоборот вызывать то всё в порядке и во время вызова на 101 показывает что используется кодек ulaw.
По идее же Asterisk транскодит всё внутри себя и ему должно быть всё равно какие кодеки предпочитают пиры, однако в моём случае это не правда. Пир 102 Cisco ATA186 не поддерживает кодек iLBC и вызов не приходит если звонящий использует именно его. А вот если подправить немного конфиг и для пира 101 указать:
disallow=all
allow=ulaw
allow=alaw
Не могу понять в чем причина.
Asterisk 1.8.13.1~dfsg1-3+deb7u3