Hallo allerseits,
normalerweise bekomme ich alles selbst raus, dieses Mal komme ich nicht zum gewünschten Ergebnis und hoffe, jemand kann mir bei meinem seltsamen Phänomen helfen oder mich in die richtige Richtung stoßen. Ansonsten ist es ein sipgate-eigenes Problem und es geht einfach nicht...
Ich habe Sipgate Trunking mit 10er Rufnommernblock gekauft. Auf Asterisk 1 funktioniert das seit Dezember wunderbar (parallel zu meinen PMXern, als Backup), ich kann direkt im Dialplan die eingehende angerufene Rufnummer mit dem passenden Context auflösen.
Eine andere Durchwahl wollte ich nun auf einem zweiten Asterisk (anderer Standort) terminieren. Exakt dieselbe Konfiguration (sip.conf, extension.conf) wie auf der ersten, contexte alle überprüft. Beide Asterisk registrieren sich korrekt bei sipgate.
Wenn ich nun die Rufnummer 0 (s.o.) des ersten Asterisk anrufe, läuft alles wie jeher. Wenn ich die Rufnummer 1 (Dialplan wie oben, nur 49XXXXXXXXX1) auf dem zweiten Asterisk wähle, wird die SIP-ID signalisiert und nicht die eigentliche Durchwahl. Natürlich existiert die SIP-ID als Extension im Context nicht, kann also nicht durchgestellt werden. Wenn ich nun aber einen Context mit der SIP-ID als Extension erstelle, kann der Anruf entgegen genommen werden, aber natürlich wird der komplette Rufnummerblock "gekapert", woraufhin die 0 bei der ersten Asterisk nicht mehr ankommt, selbst wenn ich dann den Sip-Header zerschnippel, die Rufnummer händisch ermittle. Angenommen ist in diesem Moment der Anruf, egal welche Durchwahl ich gewählt habe.
Beispiel auf Asterisk 2, weil Code wie oben nicht funktioniert:
Kille ich den Siptrunk auf Asterisk 1 und starte auf Asterisk 2 neu, wird dort korrekt signalisiert, also (meine Diagnose) wird beim zweiten registrierten Asterisk die Nummer per e146 nicht korrekt weitergegeben, sondern nur im SIP-Header.
Falls ich mit dieser Annahme richtig läge, wäre es ein sipgate-Problem und ich glaube nicht, dass die wegen mir in ihrer Konfig was ändern, weil sie nur eine Asterisk garantieren und bei zwei am selben Anschluß nicht mehr supporten.
Somit müsste ich das Problem irgendwie umgehen, damit die -0 in der einen und die -1 in der anderen Asterisk terminieren kann. Aber wie? Hat jemand einen Vorschlag?
Danke schonmal im voraus schon nur fürs Lesen bis hierhin .
CU. Bis dann.
Peter.
normalerweise bekomme ich alles selbst raus, dieses Mal komme ich nicht zum gewünschten Ergebnis und hoffe, jemand kann mir bei meinem seltsamen Phänomen helfen oder mich in die richtige Richtung stoßen. Ansonsten ist es ein sipgate-eigenes Problem und es geht einfach nicht...
Ich habe Sipgate Trunking mit 10er Rufnommernblock gekauft. Auf Asterisk 1 funktioniert das seit Dezember wunderbar (parallel zu meinen PMXern, als Backup), ich kann direkt im Dialplan die eingehende angerufene Rufnummer mit dem passenden Context auflösen.
Code:
exten => 49XXXXXXXXX0,1,NoOp(Incoming call on siptrunk 0)
exten => 49XXXXXXXXX0,n,Ringing
exten => 49XXXXXXXXX0,n,Wait(1)
exten => 49XXXXXXXXX0,n,Playback(allgemein/blablabla)
exten => 49XXXXXXXXX0,n,Hangup()
Eine andere Durchwahl wollte ich nun auf einem zweiten Asterisk (anderer Standort) terminieren. Exakt dieselbe Konfiguration (sip.conf, extension.conf) wie auf der ersten, contexte alle überprüft. Beide Asterisk registrieren sich korrekt bei sipgate.
Wenn ich nun die Rufnummer 0 (s.o.) des ersten Asterisk anrufe, läuft alles wie jeher. Wenn ich die Rufnummer 1 (Dialplan wie oben, nur 49XXXXXXXXX1) auf dem zweiten Asterisk wähle, wird die SIP-ID signalisiert und nicht die eigentliche Durchwahl. Natürlich existiert die SIP-ID als Extension im Context nicht, kann also nicht durchgestellt werden. Wenn ich nun aber einen Context mit der SIP-ID als Extension erstelle, kann der Anruf entgegen genommen werden, aber natürlich wird der komplette Rufnummerblock "gekapert", woraufhin die 0 bei der ersten Asterisk nicht mehr ankommt, selbst wenn ich dann den Sip-Header zerschnippel, die Rufnummer händisch ermittle. Angenommen ist in diesem Moment der Anruf, egal welche Durchwahl ich gewählt habe.
Beispiel auf Asterisk 2, weil Code wie oben nicht funktioniert:
Code:
exten => SIP-ID,1,NoOp(Incoming call on siptrunk 0)
exten => SIP-ID,n,NoOP(${EXTEN})
exten => SIP-ID,n,Set(fromsipgate=${CUT(CUT(SIP_HEADER(To),@,1),:,2)})
exten => SIP-ID,n,GotoIf($["${fromsipgate}"="0049XXXXXXXX1"]?accept:acceptnot)
exten => SIP-ID,n(accept),NoOp(accept)
exten => SIP-ID,n,Playback(allgemein/blablabla)
exten => SIP-ID,n,Hangup()
exten => SIP-ID,n(acceptnot),NoOp(not accepted)
Kille ich den Siptrunk auf Asterisk 1 und starte auf Asterisk 2 neu, wird dort korrekt signalisiert, also (meine Diagnose) wird beim zweiten registrierten Asterisk die Nummer per e146 nicht korrekt weitergegeben, sondern nur im SIP-Header.
Falls ich mit dieser Annahme richtig läge, wäre es ein sipgate-Problem und ich glaube nicht, dass die wegen mir in ihrer Konfig was ändern, weil sie nur eine Asterisk garantieren und bei zwei am selben Anschluß nicht mehr supporten.
Somit müsste ich das Problem irgendwie umgehen, damit die -0 in der einen und die -1 in der anderen Asterisk terminieren kann. Aber wie? Hat jemand einen Vorschlag?
Danke schonmal im voraus schon nur fürs Lesen bis hierhin .
CU. Bis dann.
Peter.