- Mitglied seit
- 3 Nov 2005
- Beiträge
- 158
- Punkte für Reaktionen
- 0
- Punkte
- 16
Hallo,
wir haben derzeit Probleme einen Toplink SIp Trunk an Gemeinschaft anzubinden. Toplink schickt die gewählte Rufnummer bei eingehenden Anrufen nicht im SIp-Invite mit sondern nur im To-Header weshalb die gemeinschaft pbx das nicht verarbeiten kann. Ich habe bereits 2 passende Links zu dem Thema gefunden aber bin mir nicht ganz schlüssig welches der bessere Ansatz ist. Villeicht könnt ihr mir hierbei helfen.
http://www.kempgen.net/voip/sip-request-uri-vs-to-header-routing.html
https://groups.google.com/group/gemeinschaft-dev/browse_thread/thread/e213fbdcac537c33?hl=de
Habe mal den ersten Ansatz probiert aber irgendwas klappt noch nicht ganz beim beschneiden der SIP-Header Infos aber ich find den Fehler über den er beim Cut Befehl meckert irgendwie nicht.
Die derzeitige Erweiterung in e-gategroups-in.ael.php
Ein danach ausgeführter eingehender Call bzw die Errors
Generell ist aber die Frage ob der Ansatz aus dem 2ten Link nicht besser ist und man diese Eingriffe aus ein einzelnes Gateway eingrenzt weil es ja sonst beim vorhandensein mehrere Provider diese Funktion bei allen greift.
Ich wäre für Lösungsvorschläge sehr dankbar. Villeicht hat jemand das bereits erfolgreich umgesetzt?
MFG
Mysterious
wir haben derzeit Probleme einen Toplink SIp Trunk an Gemeinschaft anzubinden. Toplink schickt die gewählte Rufnummer bei eingehenden Anrufen nicht im SIp-Invite mit sondern nur im To-Header weshalb die gemeinschaft pbx das nicht verarbeiten kann. Ich habe bereits 2 passende Links zu dem Thema gefunden aber bin mir nicht ganz schlüssig welches der bessere Ansatz ist. Villeicht könnt ihr mir hierbei helfen.
http://www.kempgen.net/voip/sip-request-uri-vs-to-header-routing.html
https://groups.google.com/group/gemeinschaft-dev/browse_thread/thread/e213fbdcac537c33?hl=de
Habe mal den ersten Ansatz probiert aber irgendwas klappt noch nicht ganz beim beschneiden der SIP-Header Infos aber ich find den Fehler über den er beim Cut Befehl meckert irgendwie nicht.
Die derzeitige Erweiterung in e-gategroups-in.ael.php
Code:
# hack for routing based on To header URI {
echo 'if ("${CHANNEL(channeltype)}" = "SIP") {' ,"\n";
echo ' Set(did_full=${SIP_HEADER(To)});' ,"\n";
// "Bob" <sip:012377777555@host>
echo ' Set(did_full=${CUT(did_full,@,1)});' ,"\n";
// "Bob" <sip:012377777555
echo ' if ("${CUT(did_full,<,2)}" != "") {' ,"\n";
echo ' Set(did_full=${CUT(did_full,<,2)});' ,"\n";
echo ' }' ,"\n";
// sip:012377777555
echo ' if ("${CUT(did_full,:,2)}" != "") {' ,"\n";
echo ' Set(did_full=${CUT(did_full,:,2)});' ,"\n";
echo ' }' ,"\n";
// 012377777555
echo ' Verbose(1,### DNID by To header: ${did_full});' ,"\n";
echo '}' ,"\n";
# hack for routing based on To header URI }
Ein danach ausgeführter eingehender Call bzw die Errors
Code:
-- Executing [D123451234@from-gg-gw-group-toplink:1] GotoIf("SIP/D123451234-09245c70", "1?2:29") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,2)
-- Executing [D123451234@from-gg-gw-group-toplink:2] Set("SIP/D123451234-09245c70", "__is_from_gateway=1") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:3] GotoIf("SIP/D123451234-09245c70", "0?4:5") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,5)
-- Executing [D123451234@from-gg-gw-group-toplink:5] NoOp("SIP/D123451234-09245c70", "Finish if-if-from-gg-gw-group-toplink-1024-1025") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:6] Set("SIP/D123451234-09245c70", "did_full=D123451234") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:7] GotoIf("SIP/D123451234-09245c70", "1?8:17") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,8)
-- Executing [D123451234@from-gg-gw-group-toplink:8] Set("SIP/D123451234-09245c70", "did_full=<sip:[email protected]>") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:9] Set("SIP/D123451234-09245c70", "did_full=<sip:+497613456734") in new stack
[Apr 12 11:43:46] ERROR[2391]: func_cut.c:263 acf_cut_exec: Syntax: CUT(<varname>,<char-delim>,<range-spec>) - missing argument!
-- Executing [D123451234@from-gg-gw-group-toplink:10] GotoIf("SIP/D123451234-09245c70", "0?11:12") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,12)
-- Executing [D123451234@from-gg-gw-group-toplink:12] NoOp("SIP/D123451234-09245c70", "Finish if-if-if-from-gg-gw-group-toplink-1024-1026-1027") in new stack
[Apr 12 11:43:46] ERROR[2391]: func_cut.c:263 acf_cut_exec: Syntax: CUT(<varname>,<char-delim>,<range-spec>) - missing argument!
-- Executing [D123451234@from-gg-gw-group-toplink:13] GotoIf("SIP/D123451234-09245c70", "0?14:15") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,15)
-- Executing [D123451234@from-gg-gw-group-toplink:15] NoOp("SIP/D123451234-09245c70", "Finish if-if-if-from-gg-gw-group-toplink-1024-1026-1028") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:16] Verbose("SIP/D123451234-09245c70", "1|### -GS- DNID by To header: <sip:+497613456734") in new stack
### -GS- DNID by To header: <sip:+497613456734
-- Executing [D123451234@from-gg-gw-group-toplink:17] NoOp("SIP/D123451234-09245c70", "Finish if-if-from-gg-gw-group-toplink-1024-1026") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:18] AGI("SIP/D123451234-09245c70", "/usr/share/gemeinschaft/dialplan-scripts/in-route.agi|2|<sip:+497613456734|+491512345234567") in new stack
-- Launched AGI Script /usr/share/gemeinschaft/dialplan-scripts/in-route.agi
/usr/share/gemeinschaft/dialplan-scripts/in-route.agi|2|<sip:+497613456734|+491512345234567: ### -GS- Matching route for 98 is id 2
-- AGI Script /usr/share/gemeinschaft/dialplan-scripts/in-route.agi completed, returning 0
-- Executing [D123451234@from-gg-gw-group-toplink:19] Set("SIP/D123451234-09245c70", "CALLERID(dnid)=98") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:20] Verbose("SIP/D123451234-09245c70", "1|### -GS- Inbound call from gw group "gw-group-toplink". dnid: <sip:+497613456734 => ext: 98 => 99") in new stack
### -GS- Inbound call from gw group "gw-group-toplink". dnid: <sip:+497613456734 => ext: 98 => 99
-- Executing [D123451234@from-gg-gw-group-toplink:21] Verbose("SIP/D123451234-09245c70", "1|### from cid orig: +491512345234567 => from cid: +491512345234567") in new stack
### from cid orig: +491512345234567 => from cid: +491512345234567
-- Executing [D123451234@from-gg-gw-group-toplink:22] Set("SIP/D123451234-09245c70", "CALLERID(num)=+491512345234567") in new stack
-- Executing [D123451234@from-gg-gw-group-toplink:23] GotoIf("SIP/D123451234-09245c70", "1?24:26") in new stack
-- Goto (from-gg-gw-group-toplink,D123451234,24)
-- Executing [D123451234@from-gg-gw-group-toplink:24] Goto("SIP/D123451234-09245c70", "from-gateways|99|1") in new stack
-- Goto (from-gateways,99,1)
Generell ist aber die Frage ob der Ansatz aus dem 2ten Link nicht besser ist und man diese Eingriffe aus ein einzelnes Gateway eingrenzt weil es ja sonst beim vorhandensein mehrere Provider diese Funktion bei allen greift.
Ich wäre für Lösungsvorschläge sehr dankbar. Villeicht hat jemand das bereits erfolgreich umgesetzt?
MFG
Mysterious