Hallo zusammen komme einfach nicht weiter.
Folgende Situation
raspi mit asterisk22 und baresip installiert verbunden mit usb soundkarte verbindet sich über AUDIO
mit einen weiteren raspi mit asterisk22 und baresip installiert über usb soundkarte via kabel ,also mic to speaker usw.
also : RASPI mit asterisk und baresip-usb soundkarte ————audiokabel ————-usb soundkatre-baresip,asterisk RASPI .
auf beiden Raspis wird per start script ein anruf von baresip nach asterisk über die nummer 100 gestartet, somit besteht ein audiolink zwischen asterisk1 und asterisk2 und beide können auf DTMF Inband reagieren.
dialplan1:
[audiolink]
exten => 100,1,Answer()
exten => 100,2,Set(DTMF_MODE=inband)
exten => 100,3,Read(dtmfinput,3,86400)
exten => 100,5,SayDigits(${dtmf_input})
exten => 100,6,GotoIf($[“${dtmf_input}” = “702”]?incoming,702,1:noservice,s,1)
exten => 701,1,Answer()
exten => 701,n,System(/disconnect-audiolink.sh) ; mit diesem script wird der bestehende PJSIP CHANNEL zwischen asterisk1 und baresip1 unterbrochen
exten => 701,n,NoOp(Script executed)
exten => 701,n,Wait(3)
exten => 701,n,Set(DTMF_MODE=inband)
exten => 701,n,Dial(PJSIP/baresip1,60,tr)
[incoming]
exten => 702,1,Playback(activated)
exten => 702,2,Dial(PJSIP/702CCN,60,tr) ; Nebenstelle Telefon
exten => 702,3,Hangup()
[noservice]
exten => s,1,Playback(invalid) ; Dieser Kontext für alle anderen Eingaben
exten => s,2,Goto(audiolink,100,3)
exten => s,3,Hangup()
dialplan2:
[audiolink]
exten => 100,1,Answer()
exten => 100,2,Set(DTMF_MODE=inband)
exten => 100,3,Read(dtmfinput,3,86400)
exten => 100,5,SayDigits(${dtmf_input})
exten => 100,6,GotoIf($[“${dtmf_input}” = “701”]?incoming,701,1:noservice,s,1)
exten => 702,1,Answer()
exten => 702,n,System(/disconnect-audiolink.sh) ; mit diesem script wird der bestehende PJSIP CHANNEL zwischen asterisk2 und baresip2 unterbrochen
exten => 702,n,NoOp(Script executed)
exten => 702,n,Wait(3)
exten => 702,n,Set(DTMF_MODE=inband)
exten => 702,n,Dial(PJSIP/baresip2,60,tr)
[incoming]
exten => 701,1,Playback(activated)
exten => 701,2,Dial(PJSIP/701CCN,60,tr) ; Nebenstelle Telefon
exten => 701,3,Hangup()
[noservice]
exten => s,1,Playback(invalid) ; Dieser Kontext für alle anderen Eingaben
exten => s,2,Goto(audiolink,100,3)
exten => s,3,Hangup()
alles funktioniert soweit problem is nur :
wenn im dialplan
exten => 701,1,Answer()
exten => 701,n,System(/disconnect-audiolink.sh) ; mit diesem script wird der bestehende PJSIP CHANNEL zwischen asterisk1 und baresip1 unterbrochen
exten => 701,n,NoOp(Script executed)
exten => 701,n,Wait(3)
exten => 701,n,Set(DTMF_MODE=inband)
exten => 701,n,Dial(PJSIP/baresip1,60,tr)
ausgeführt wird dann muss nachdem aufgelegt wurde wieder das start script ausgeführt werden ,das die 100 anruft damit der audiolink wieder auf DTMF reagieren kann .
das ist das problem . Ich habe es schon mit
exten => h,1,System(/autocall.sh)
versucht , was nicht funktioniert ,weil das script schon dann direkt nach
exten => 701,n,System(/disconnect-audiolink.sh)
ausgeführt wird und der dial befehl
exten => 701,n,Dial(PJSIP/baresip1,60,tr)
nicht mehr ausgeführt werden kann.
vielleicht hat jemande eine idee oder einen besseren weg wie es funktionieren kann