Добрый день!
Имеется следующее приложение в features.conf:
sendfax => *9,peer/both,AGI,/etc/asterisk/agi/map_mail.pl
На исходящем звонке переменные, которые оно принимает от *, несколько не соответствуют действительности. А именно - номер 404 звонит на 2010000, звонок выходит на PRI. При включенном agi debug в консоли видно, что при срабатывании приложения, в скрипт в параметрах передаётся следующее:
AGI Tx >> agi_request: /etc/asterisk/agi/map_mail.pl
AGI Tx >> agi_channel: Zap/63-1
AGI Tx >> agi_language: en
AGI Tx >> agi_type: Zap
AGI Tx >> agi_uniqueid: 1322049810.4307
AGI Tx >> agi_callerid: 0442010000
AGI Tx >> agi_calleridname: unknown
AGI Tx >> agi_callingpres: 3
AGI Tx >> agi_callingani2: 0
AGI Tx >> agi_callington: 0
AGI Tx >> agi_callingtns: 0
AGI Tx >> agi_dnid: 481
AGI Tx >> agi_rdnis: unknown
AGI Tx >> agi_context: from_pstn
AGI Tx >> agi_extension:
AGI Tx >> agi_priority: 1
AGI Tx >> agi_enhanced: 0.0
AGI Tx >> agi_accountcode:
Судя по контексту и поменянные местами callerid и dnid, * трактует этот звонок как пришедший с PRI. Насколько я понимаю, это происходит потому что я запускаю приложение на peer. Но это не проблема. Главная проблема в том, что в dnid подставляется случайный (ну, может не совсем случайный) номер - но не тот, с которого идёт звонок. В конкретно данном случае - 481 вместо 404. В других тестовых забегах были и 408, и 401, и другие. Найти какую-либо зависимость (типа, последний набранный номер или ещё что) мне не удалось - каждый раз подставляется разный номер.
Если звонок действительно входящий с PSTN, то все переменные передаются корректно.
Поделитесь плз умными мыслями на этот счёт, поскольку моих собственных не хватает.