AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Звонки между контекстати

Newbies/FAQ Forum 9 сообщений -
#1

Звонки между контекстати


Доброго времени суток!
Приступил к изучению астериска и появился вопрос касательно звонков между разными контекстами. Крнфиг следующий:
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 шлюза можно звонить как в мир так и на внутренние номера (последнее как-раз и не работает).
#2

Можете выложить что в этот момент пишется в консоли asterisk?
_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
#3

Код:
[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'.
#4

пропишите руками ещё раз в
[gsm_gates]
exten => 222..............
ИМХО(я то сам нуб)

и читал где то, что не надо вкладывать их в каждом
#5

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)
#6

Скажите а что Вы хотите сделать с данной переменной ${CDR(dst)} ? Какой результат Вы хотите получить?

Спасибо.

_________________
Мы всегда можем уметь...
#7

nikto @ Ср Янв 09, 2013 17:18 писал(а):
Скажите а что Вы хотите сделать с данной переменной ${CDR(dst)} ? Какой результат Вы хотите получить?

Спасибо.

Да эт я где-то из примера взял и скопипастил. Можно же и просто SIP/${EXTEN}
#8

m0ps @ Ср Янв 09, 2013 15:13 писал(а):
Код:
[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'.

такой вид записи говорит что на exten 2XX может звонить только номер попадающий под паттерн 2XX
exten => _2XX/_2XX,1,Dial(SIP/${CDR(dst)},60,mtT)

по-моему вам надо почитать asterisk the future of telephony чтобы не делать таких ошибок.
простой копипаст приводит лишь к собиранию чужих ошибок.

_________________
IT Logic, разработка CRM систем, Call центры, сложные VoIP решения, телефонизация под ключ.
#9

Согласен.
Что касается маски - я эт уже выяснил и внес необходимые правки.
Спасибо всем кто откликнулся