.titleBar { margin-bottom: 5px!important; }

Call Deflection und mISDN, misdn_facility

Dieses Thema im Forum "Asterisk ISDN mit mISDN" wurde erstellt von merlin81, 7 Jan. 2007.

  1. merlin81

    merlin81 Neuer User

    Registriert seit:
    7 Jan. 2007
    Beiträge:
    4
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    nachdem die Suche nach Call Deflection mit mISDN bei google als erstes dieses Forum ausgibt, hoffe ich Ihr könnt mir weiterhelfen.
    Wo in den Wahlregeln muss ich misdn facility eintragen, bzw. wie wird call deflection für mISDN aktiviert ?
    Welche Nummern werden weitergeleitet ? Alle MSNs oder kann ich nur "interne" Telefone weiterleiten. Wenn nein, wie kann ich die MSN angeben ?
    Oder gibt es evtl. sogar doch die Möglichkeit * zu erklären, eine Umleitung im Amt einzustellen ? Versuche mit *21*NUMMER# schlagen leider fehl.
    Danke im Voraus,
    Christoph
     
  2. crich

    crich Mitglied

    Registriert seit:
    1 Sep. 2005
    Beiträge:
    529
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Umleitung im AMT gibts leider noch nicht. Um calldeflect zu machen musst du einfach in der extensions.conf für deine Nr. die applikation misdn_facility aufrufen und die Zielnummer angeben.

    Angenommen dein Kontext heisst inbound und die weiterzuleitende MSN ist 123 und die Zielnummer 456, dann machst du das etwa so:

    [inbound]
    exten => 123,1,Ringing
    exten => 123,2,misdn_facility(calldeflect|456)
    exten => 123,3,wait(3)
    exten => 123,4,hangup
     
  3. merlin81

    merlin81 Neuer User

    Registriert seit:
    7 Jan. 2007
    Beiträge:
    4
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke erstmal für deine Antwort,
    wenn ich das richtig verstehe ist das dann aber eine statische Weiterleitung. Was ich suche ist eine Möglichkeit den Anruf weiterzuleiten nachdem von einem Apparat die Weiterleitung eingerichtet wurde. Dieser Apparat sollte dann auch die Möglichkeit haben die Weiterleitung auch wieder auszuschalten.
    Ich habe folgendes probiert:
    exten => *50,1,Set(FROM_DID="externeMSN") ; externeMSN Format XXXXXX
    exten => *50,n,Answer()
    exten => *50,n,Wait(1)
    exten => *50,n,misdn_facility(calldeflect,Zielnummer)
    exten => *50,n,Hangup()

    das funktioniert also nicht, da, wenn ich das richtig verstehe, die eingehende MS auf einen anderen Kontext geswitcht werden muss.
    Gibt es da eine Möglichkeit der Einrichtung ? Wenn ich jedesmal meinen Kontext ändern muss finde ich das ein wenig kompliziert ;)

    Christoph
     
  4. crich

    crich Mitglied

    Registriert seit:
    1 Sep. 2005
    Beiträge:
    529
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    schau dir mal das asterisk-db konzept an und experimentiere mit GotoIF, dann solltest du das auch dynamisch hinbekommen. Ich denke da etwa an ein paar zeilen wie:

    ; setzen der weiterleitung mit *50*nummer
    exten => *50*X.,1,Set(DB(weiterleitung_$(CALLERID))=${EXTEN:4})
    ; löschen der weiterleitung mit *51
    exten => *51,1,Set(DB(weiterleitung_$(CALLERID))=aus)

    im inbound kontext musst du jetzt natürlich unterscheiden:

    exten => 123,1,GotoIF(DB(weiterleitung_123)='aus'?2:3)
    exten => 123,2,Dial(FON)
    exten => 123,3,misdn_send_facility(calldeflect|DB(weiterleitung_123)


    das ist jetzt nur grob skizziert, aber vom prinzip her sollte das etwa so funktionieren, dazu musst du dir die DB functions anschauen und die GotoIF Syntax checken.
     
  5. merlin81

    merlin81 Neuer User

    Registriert seit:
    7 Jan. 2007
    Beiträge:
    4
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das funktioniert prima, danke
    Allerdings ist mir nicht klar, worin der Unterschied zwischen misdn_send_facility und misdn_facility besteht. Gibt es da irgendwo eine Doku zu ?

    Funktionierende Syntax:
    ; setze weiterleitung mit *50*weiterleitungsMSN#OUTMSN
    exten => _*50*.,1,Answer()
    exten => _*50*.,2,Set(dstring=${EXTEN:4})
    exten => _*50*.,3,Set(cfmsn=${CUT(dstring,"#",1)})
    exten => _*50*.,4,Set(cdmsn=${CUT(dstring,"#",2)})
    exten => _*50*.,5,Set(DB(weiterleitung/${cdmsn})=${cfmsn})
    exten => _*50*.,6,Wait(1)
    exten => _*50*.,7,Hangup()

    ;weiterleitung aus mit #50*OUTMSN
    exten => _#50*.,1,Answer()
    exten => _#50*.,2,Set(DB(weiterleitung/${EXTEN:4})="aus")
    exten => _#50*.,3,Wait(1)
    exten => _#50*.,4,Hangup()

    ; incoming regel
    exten => OUTMSN,1,GotoIf($["${DB(weiterleitung/OUTMSN)}"="aus" || "${DB(weiterleitung/OUTMSN)}"=""]?5)
    exten => OUTMSN,2,misdn_facility(calldeflect|${DB(weiterleitung/OUTMSN)})
    exten => OUTMSN,3,Wait(3)
    exten => OUTMSN,4,Hangup()