Звонки между контекстати
Приступил к изучению астериска и появился вопрос касательно звонков между разными контекстами. Крнфиг следующий:
extensions.conf
| Код: |
| [office] include => gsm_gates exten => _2XX/_2XX,1,Dial(SIP/${CDR(dst)},60,mtT) exten => _2XX/_2XX,2,PlayBack(followme/sorry) exten => _2XX/_2XX,3,Goto(2${MAILBOX_EXISTS(${CDR(dst)}@office)}1) exten => _2XX/_2XX,201,PlayBack(vm-goodbye) exten => _2XX/_2XX,202,Hangup() exten => _2XX/_2XX,211,Voicemail(${CDR(dst)}@office) exten => _2XX/_2XX,212,PlayBack(vm-goodbye) exten => _2XX/_2XX,213,Wait(2) exten => _2XX/_2XX,214,Hangup() [gsm_gates] include => world include => office ;ks exten => _067XXXXXXX,1,Dial(SIP/${EXTEN}@999,60,r) exten => _067XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _067XXXXXXX,n,Hangup exten => _068XXXXXXX,1,Dial(SIP/${EXTEN}@999,60,r) exten => _068XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _068XXXXXXX,n,Hangup exten => _096XXXXXXX,1,Dial(SIP/${EXTEN}@999,60,r) exten => _096XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _096XXXXXXX,n,Hangup exten => _097XXXXXXX,1,Dial(SIP/${EXTEN}@999,60,r) exten => _097XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _097XXXXXXX,n,Hangup exten => _098XXXXXXX,1,Dial(SIP/${EXTEN}@999,60,r) exten => _098XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _098XXXXXXX,n,Hangup ;life exten => _063XXXXXXX,1,Dial(SIP/${EXTEN}@998,60,r) exten => _063XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _063XXXXXXX,n,Hangup exten => _093XXXXXXX,1,Dial(SIP/${EXTEN}@998,60,r) exten => _093XXXXXXX,2,Dial(SIP/38${EXTEN}@gate,60,mT) exten => _093XXXXXXX,n,Hangup [world] ignorepat => 0 exten => _0X.,1,Dial(SIP/${EXTEN:1}@gate,60,mT) same => n,Hangup |
users.conf
| Код: |
| ;gsm gateways [999] type=friend defaultuser=999 ; KS fromuser=999 regexten=999 secret=SECRET context=gsm_gates dtmfmode=inband call-limit=1 callerid=GSM Gateway host=dynamic nat=yes canreinvite=no insecure=invite qualify=yes disallow=all allow=ulaw allow=alaw allow=g729 deny=0.0.0.0/0.0.0.0 permit=XXX.XXX.XXX.XXX/32 [998] type=friend defaultuser=998 ; LIFE fromuser=998 regexten=998 secret=SECRET context=gsm_gates dtmfmode=inband call-limit=1 callerid=GSM Gateway host=dynamic nat=yes canreinvite=no insecure=invite qualify=yes disallow=all allow=ulaw allow=alaw allow=g729 deny=0.0.0.0/0.0.0.0 permit=XXX.XXX.XXX.XXX/32 ;sip providers [gate] secret=SECRET defaultuser=asterisk trunkname=asterisk host=XXX.XXX.XXX.XXX type=friend context=world insecure=invite fromuser=asterisk fromdomain=XXX.XXX.XXX.XXX disallow=all allow=alaw allow=ulaw allow=g729 nat=no qualify=yes hasiax = no dtmfmode=rfc2833 deny=0.0.0.0/0.0.0.0 permit=XXX.XXX.XXX.XXX/32 ;templates [usr_tpl](!) type=friend host=dynamic context=office dtmfmode=RFC2833 disallow=all allow=ulaw allow=alaw allow=g723 allow=gsm nat=yes qualify=yes call-limit=1 hasiax = no deny=0.0.0.0/0.0.0.0 permit=XXX.XXX.XXX.XXX/24 ;users [222](usr_tpl) fullname=User 1 email=user1@domain.com defaultuser=222 secret=SECRET [202](usr_tpl) fullname=User 2 email=user2@domain.com defaultuser=202 secret=SECRET |
Проблема заключается в том, что я не могу совершить звонок с контекста gsm_gates в office, хотя include прописан. Может это связанно с тем, что office в свою очередь уже имеет инклуд gsm_gates? Если да, то как тогда правильно поступить?
P.S. Чего хочу добиться: есть офисные пользователи - они могут звонить куда хо. Звонки на мобильных операторов - через GSM шлюз, если линия занята - через sip провайдера. С gsm шлюза можно звонить как в мир так и на внутренние номера (последнее как-раз и не работает).
_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
| Код: |
| [Jan 9 15:08:22] NOTICE[8547]: chan_sip.c:22622 handle_request_invite: Call from '998' (XXX.XXX.XXX.XXX:5062) to extension '222' rejected because extension not found in context 'gsm_gates'. |
[gsm_gates]
exten => 222..............
ИМХО(я то сам нуб)
и читал где то, что не надо вкладывать их в каждом
| gamespb @ Ср Янв 09, 2013 16:50 писал(а): |
| пропишите руками ещё раз в [gsm_gates] exten => 222.............. ИМХО(я то сам нуб) |
не, дело в том, что в office нужно было указать маску адресов как
| Код: |
| exten => _2XX,1,Dial(SIP/${CDR(dst)},60,mtT) |
| Код: |
| exten => _2XX/_2XX,1,Dial(SIP/${CDR(dst)},60,mtT) |
Спасибо.
_________________
Мы всегда можем уметь...
| nikto @ Ср Янв 09, 2013 17:18 писал(а): |
| Скажите а что Вы хотите сделать с данной переменной ${CDR(dst)} ? Какой результат Вы хотите получить? Спасибо. |
Да эт я где-то из примера взял и скопипастил. Можно же и просто SIP/${EXTEN}
такой вид записи говорит что на exten 2XX может звонить только номер попадающий под паттерн 2XX
exten => _2XX/_2XX,1,Dial(SIP/${CDR(dst)},60,mtT)
по-моему вам надо почитать asterisk the future of telephony чтобы не делать таких ошибок.
простой копипаст приводит лишь к собиранию чужих ошибок.
_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
Что касается маски - я эт уже выяснил и внес необходимые правки.
Спасибо всем кто откликнулся