проблема заключается в следующем. есть 2 сервера, на одном установлен elastix 1.5.2 и соответственно asterisk 1.4, на другом elastix 2.0 и asterisk 1.6. между ними кинут iax2 транк. на первом 3-х значная нумерация, на втором 4-х значная. присутствуют и SIP и IAX номера, задача объединить оба диалплана. транк поднят нормально, звонки ходят в обе стороны. НО при звонке со второго сервера с сип-номера на первый сервер, тоже на сип-номер, CID определяется нормально и абонент видит реальный CID со второго сервера. а вот при звонке наоборот все не так. абоненту второго сервера приходит звонок как будто с внутреннего iax-номера того же сервера. как будто транка не существует в природе.
вот куски логов
лог сервера c elastix 1.5
[Apr 6 14:39:45] VERBOSE[8537] logger.c: -- Accepting AUTHENTICATED call from 192.168.1.252:
> requested format = ulaw,
> requested prefs = (ulaw|gsm|alaw),
> actual format = ulaw,
> host prefs = (ulaw|alaw|gsm),
> priority = mine
[Apr 6 14:39:45] VERBOSE[26152] logger.c: -- Executing [129@default:1] Macro("IAX2/test2-9231", "exten-vm|novm|129") in new stack
все нормально, звонок приходит по транку как и положено и дальше отправляется по своему назначению на номер 129
лог сервера с elastix 2.0
[Apr 6 14:48:55] VERBOSE[2768] chan_iax2.c: -- Accepting AUTHENTICATED call from 192.168.1.115:
> requested format = alaw,
> requested prefs = (alaw|ulaw|gsm),
> actual format = ulaw,
> host prefs = (ulaw|gsm|alaw),
> priority = mine
[Apr 6 14:48:55] VERBOSE[2989] pbx.c: -- Executing [1129@from-internal:1] Macro("IAX2/1199-3254", "exten-vm,1129,1129") in new stack
звонок отправляется куда надо, на номер 1129, вот только он делает вид что пришел не с транка между астерисками а с внутреннего номера 1199 который поднят на нем самом. и вообще в логе никаких следов что транк существует.
на первом сервере то же есть iax номер 199 с точно теми же настройками но там таких глюков нет.
единственная мысль что все дело все-таки в контекстах, но долгая игра с ними ни к чему не привела.