Stránka 1 z 1

Asterisk: volani pres callfile a presmerovani prichozich

Napsal: čtv 28. dub 2022 14:05:03
od tuxmartin
Ahoj,

snazim se postavit si jednoduchy notifikator. Pomoci Asterisk call files volam na cislo. To mi funguje s nasledujicim nastavenim:

Kód: Vybrat vše

# cat /etc/asterisk/sip.conf 
[general]
register => 716xxx:secretPassword@sip.odorik.cz

subscribecontext=odorik
context=odorik
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
allow=!all,gsm

[odorik]
type=peer
;type=user
host=sip.odorik.cz
secret=secretPassword
username=716xxx
nat=yes
context=odorik
fromuser=716xxx

Kód: Vybrat vše

# cat /etc/asterisk/extensions.conf
[zabbix]
exten => 123,1,Answer()
exten => 123,2,Playback(${ALERT_FILE})
exten => 123,3,Hangup()
A zavolani:

Kód: Vybrat vše

sudo -u asterisk tee /var/spool/asterisk/outgoing/test.call > /dev/null << EOF
Channel: SIP/00420123456789@odorik
CallerID: 00420910123456
MaxRetries: 10
RetryTime: 60
WaitTime: 30
Archive: yes
Extension: 123
Context: zabbix
SetVar: ALERT_FILE=/tmp/alert_123
EOF
Nyni bych vsak potreboval i prichozi hovory. Asterisk by hovor prijal, prehral hlasku a presmeroval na jine tel. cislo mimo Odorik (00420xxxxxxxxx).
Upravil jsem config:

Kód: Vybrat vše

# cat /etc/asterisk/extensions.conf
[odorik]
exten => s,1,Log("ERROR", "Incoming call")
exten => s,2,Answer()
exten => s,3,Goto(oncall,777,1)

[oncall]
exten => 777,1,NoOp()
exten => 777,2,Log("ERROR", "Incomming call from Caller-ID: ${CALLERID}")
exten => 777,3,Dial(SIP/00420800123456@odorik)
exten => 777,4,Hangup()

[zabbix]
exten => 123,1,Answer()
exten => 123,2,Playback(${ALERT_FILE})
exten => 123,3,Hangup()
Jenze to nefunguje.

Kdyz mam v sip.conf "type=user", nejde odchozi volani:

Kód: Vybrat vše

dub 28 13:55:51 X1 asterisk[2561073]: [Apr 28 13:55:51] ERROR[2561157]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("odorik", "(null)", ...): Do?asn? chyba p?i vyhodnocov?n? jm?na
dub 28 13:55:51 X1 asterisk[2561073]: [Apr 28 13:55:51] WARNING[2561157]: chan_sip.c:6394 create_addr: No such host: odorik
dub 28 13:55:51 X1 asterisk[2561073]: [Apr 28 13:55:51] NOTICE[2561157]: pbx_spool.c:450 attempt_thread: Call failed to go through, reason (0) Call Failure (not BUSY, and not NO_ANSWER, maybe Circuit busy or down?)
Kdyz to prepnu na "type=peer", odchozi volani funguje, jenze pak zase nejde prichozi volani. S "type=peer" mi to pri zavolani rekne "volane cislo neni v tuto chvili dostupne".
Kdyz nastavim "type=user", prestane fungovat callfile. Prichozi hovor sice nyni prijmu, ale nejde mi presmerovat na jine verejne cislo:

Kód: Vybrat vše

dub 28 13:59:34 X1 asterisk[2561466]: [Apr 28 13:59:34] ERROR[2561561][C-00000001]: Ext. s:1 @ odorik:  "Incoming call"
dub 28 13:59:35 X1 asterisk[2561466]: [Apr 28 13:59:35] ERROR[2561561][C-00000001]: Ext. 777:2 @ oncall:  "Incomming call from Caller-ID: "
dub 28 13:59:35 X1 asterisk[2561466]: [Apr 28 13:59:35] ERROR[2561561][C-00000001]: netsock2.c:303 ast_sockaddr_resolve: getaddrinfo("odorik", "(null)", ...): Do?asn? chyba p?i vyhodnocov?n? jm?na
dub 28 13:59:35 X1 asterisk[2561466]: [Apr 28 13:59:35] WARNING[2561561][C-00000001]: chan_sip.c:6394 create_addr: No such host: odorik
dub 28 13:59:35 X1 asterisk[2561466]: [Apr 28 13:59:35] WARNING[2561561][C-00000001]: app_dial.c:2576 dial_exec_full: Unable to create channel of type 'SIP' (cause 20 - Subscriber absent)
Kdyz nastavim celou url:

Kód: Vybrat vše

exten => 777,3,Dial(SIP/00420800123456@sip.odorik.cz)
vypada to lepe, ale stale to nefunguje:

Kód: Vybrat vše

dub 28 14:02:15 X1 asterisk[2561634]: [Apr 28 14:02:15] ERROR[2561725][C-00000001]: Ext. s:1 @ odorik:  "Incoming call"
dub 28 14:02:16 X1 asterisk[2561634]: [Apr 28 14:02:16] ERROR[2561725][C-00000001]: Ext. 777:2 @ oncall:  "Incomming call from Caller-ID: "
dub 28 14:02:16 X1 asterisk[2561634]: [Apr 28 14:02:16] NOTICE[2561695][C-00000001]: chan_sip.c:24398 handle_response_invite: Failed to authenticate on INVITE to '"732xxxxxx>493" <sip:732xxxxxx@10.123.1.99>;tag=as24830141'
Dokazal by mi nekdo poradit, kde delam chybu?
Jde mi pouze o jedno jedine cislo, ktere asterisk bude pouzivat.
Dekuji!

Re: Asterisk: volani pres callfile a presmerovani prichozich

Napsal: čtv 28. dub 2022 15:41:12
od tuxmartin
Mam to!

Kód: Vybrat vše

# cat /etc/asterisk/sip.conf
[general]
register => 716xxx:secretPassword@sip.odorik.cz

subscribecontext=abc
context=abc
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
allow=!all,gsm

[trunk]
type=friend
host=sip.odorik.cz
secret=secretPassword
username=716xxx
nat=yes
context=abc
fromuser=716xxx
fromnumber=716xxx
insecure=invite

Kód: Vybrat vše

# cat /etc/asterisk/extensions.conf
[abc]
exten => s,1,Log("ERROR", "Incomming call from Caller-ID: ${CALLERID(all)}")
exten => s,2,Dial(SIP/00420800123456@trunk)
exten => s,3,Hangup()

[zabbix]
exten => 123,1,Answer()
exten => 123,2,Playback(${ALERT_FILE})
exten => 123,3,Hangup()

Re: Asterisk: volani pres callfile a presmerovani prichozich

Napsal: čtv 28. dub 2022 16:29:27
od xsouku04
jinak návod jak nastavit Asterisk máme zde. http://www.odorik.cz/w/freepbx:siptrunk

Je to pro SIP trunk, ale trunk se liší od běžné linky jen tím, že přes jeden účet (jednu linku) lze posílat hovory z různých čísel.

Ono záleží jestli používáte channel_sip nebo ten novější channel_pjsip. Pak jsou různé konfiguráky. Ukázky jsou též pro obojí.

Bohužel Asterisk toho umí hodně, ale jeho nastavení jsem na chuť nikdy nepřišel.