Call Deflection über SIP 302 "Moved temporarily"

MuadDib01

Neuer User
Mitglied seit
9 Dez 2012
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo,

seit geraumer Zeit suche ich nach einer Möglichkeit Call Deflection über Asterisk zu realisieren. Standardmäßig werden Umleitungen direkt über Asterisk umgesetzt. Ziel ist es jedoch eine direkte Anrufweiterschaltung über die Vermittlungsstelle zu realisieren.

Gibt es eine Möglichkeit Asterisk den SIP-Code 302 "Moved temporarily" an den SIP-Trunk senden zu lassen, damit die Anrufweiterleitung direkt über die Vermittlungsstelle geschieht?
 
Der Befehlt Transfer() macht genau das bei SIP.

http://www.voip-info.org/wiki/view/Asterisk+cmd+Transfer schrieb:
Note that for SIP, if you transfer before call is setup, a 302 redirect SIP message will be returned to the caller.
 
Das Problem ist, dass Asterisk, dies nicht an den Peer meldet, wenn ein Endgerät den Status auf 302 setzt, sondern eine Verbindung aufbaut.
 
Wenn Du das ganze über das Endgerät steuern willst, musst Du das im Dialplan erkennen. Ich hab das schon mal gemacht, kann mich aber nicht mehr erinnern wie genau, irgendwie mit einer vererbten Variable ein Flag gesetzt, dass der Anruf von extern kommt und beim weitergeleiteten Dial nach extern ausgewertet. Dazu darf vor dem Transfer aber auch nichts anderes passieren, kein Ringing() oder Ähnliches.
 
Hallo,

bisheriger Lösungsansatz ist den geöffneten Channel Local/*** mit hangup() zu beenden und dann einen Transfer einleiten, leider ist dieser Ansatz relativ unbrauchbar, da man nicht vernünftig zwischen Call Forward und Call Deflection unterscheiden kann.

Den SIP-Status schaffe ich nicht auszuwerten um einen Transfer vor dem Channel Local/*** einzuleiten.
 
Zuletzt bearbeitet von einem Moderator:
Bei dem Ansatz müsste man noch mal die ausgehende Rufnummer überprüfen ob sie extern oder intern ist, meiner Ansicht ist sinnvoller schon davor per Status zu setzen ob CF oder CD gemeint ist um die Flexibilität zu erhalten und nicht immer wieder den Dialplan azupassen.
 
Hm, ich hab's zwar immer noch nicht ganz kapiert, aber wie willst Du vorher einen Status setzen, wenn Du gar nicht weißt, ob das Telefon ein 302 senden wird? Dazu müsstest Du die Umleitung nicht direkt am Telefon einstellen, sondern per Tastenkombination/Action-URL die Rufumleitung am Asterisk (zB. AstDB) eintragen.
 
Der Status muss vorher nicht gesetzt sein. Wenn das Telefon 302 meldet und die Rufnummer nach extern geht, dann soll Asterisk dies als Call Deflection auswerten. Ziel ist eine Funktionalität, wie die Umleitung im AMT bei ISDN.
 
... schon davor per Status zu setzen ob CF oder CD gemeint ist ...
Der Status muss vorher nicht gesetzt sein.

:gruebel:

Also entweder weiß Asterisk schon bevor die Nebenstelle überhaupt gerufen wird, dass eine Umleitung gesetzt ist.

Oder Du musst den Channel kennzeichnen, damit Du vor dem durch das 302 des Endgeräts ausgelösten weiterführenden Dial erkennen kannst, dass es sich um eine Umleitung handelt.

In beiden Fällen musst Du prüfen, ob es sich dabei um eine interne (-> Dial ausführen) oder eine externe (-> Transfer) Umleitung handelt. "immer wieder den Dialplan anzupassen" ist dafür nicht nötig, einmal programmiert geht das alles dynamisch.
 
Hallo,

die Lösungsansätze sind so weit klar nur bei der Umsetzung happert es noch gewaltig :-).

Danke für die Mühe.
 
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,866
Beiträge
2,303,227
Mitglieder
378,522
Neuestes Mitglied
Christian_B70