AWS,CFU,CFB,CFNR bzw. Rufumleitung im AMT mit mISDN ?

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
329
Punkte für Reaktionen
0
Punkte
16
GELÖST:AWS,CFU,CFB,CFNR bzw. Rufumleitung im AMT mit mISDN ?

Ist das möglich und wenn ja wie ?
Das hier klappt bei mir irgendwie nicht. Bekomme dann immer ein besetzt.
Code:
exten => 28,n,dial,misdn/g:port1-3/*21*Nummer#||

Wie muss ich das machen ?

Hat jemand eine Lösung für mich ?


Gruss,

Jörg
 
Zuletzt bearbeitet:
Über chan_capi gehts so auch nicht.

Code:
 Executing Dial("SIP/Snom14-0849a6c0", "CAPI/ISDN2/*21*xxxxxxxxxxxxxxxxxxxx#||") in new stack
    -- Called ISDN2/*21*xxxxxxxxxxxxxxxxxxxx#
> ISDN2#02: CAPI INFO 0x349c: Invalid number format
  == ISDN2#02: CAPI Hangingup for PLCI=0x102 in state 4
  == Everyone is busy/congested at this time (1:0/0/1)

Habe inzwischen auch gelesen das es chan_misdn und chan_capi wohl noch nicht kann.

Wäre gut zu wissen wann, denn ich brauche sowas ;)

Gruss,

Jörg
 
Ich habe mir capidivert von hier heruntergeladen und mit angehängtem patch modifiziert damit man auch mehr als eine ISDN Karte ansprechen kann.

Ruft man dann capidivert ohne Paramter auf sollte der Text selbsterklärend sein.
Bevor das einwandfrei funktioniert muss man noch folgendes in der misdn-init.conf eintragen:
te_capi_ptp=

Es kommt zwar noch eine Fehlermeldung bei Anruf auf einer umgeleiteten MSN
aber ich denke das is nur ein kosmetisches Problem. Bei mir funktioniert es jedenfalls prima.

Somit kann der nächste Stromausfall ruhig kommen. Die Telekom hat schließlich bessere USV´s ;) Ich zahle ja schließlich dafür.

Gruss,

Jörg
 

Anhänge

  • controller.patch.gz
    698 Bytes · Aufrufe: 24
bin mir nicht ganz sicher wieso man keine * oder # per misdn wählen kann. kannst du dazu mal nen bug auf bugs.beronet.com aufmachen, sonst vergess ich sowas. ich teste das nächste Woche mal.

chan_misdn kann momentan nur Call Deflection = CD die anderen dinger legen wir evtl. noch in den nächsten Monaten nach.
 
Hallo Christian,

schön von dir zu hören.

Werde heute noch den bug aufmachen. Und auch noch mal ein wenig rumtesten.
Ist ja schliesslich schon einige chan_misdn RC´s her seit ich das getestet hatte. Wäre ja der Knaller wenns nun funktioniert und ich mir die ganze Arbeit mit capidivert umsonst gemacht habe. (Allerdings habe ich wieder andere Sachen dazu gelernt ;) )


Gruss,


Jörg
 
Habe nächste Woche Urlaub aber ich werde es zwischendurch mal testen und berichten. Super Sache. Vielen Dank ! Vereinfacht für mich einiges.

Gruss,

Jörg
 
Ich sehe gerade das ich chan_misdn als source nicht bekomme.

Außer ich würde die asterisk-trunk Version nutzen. Das is mir aber mittlerweile zu heikel. (Stichwort: Produktivsystem)

Ich werde also brav warten bis die RC31 rauskommt. ;)

P.S.: Oder gibt es evtl noch eine andere Möglichkeit das auf asterisk 1.2.XX zu portieren ?

/EDIT/
Ich habe gerade was gefunden. Vergiss es ;)
svn co http://svn.digium.com/svn/asterisk/branches/1.2 asterisk-1.2
/EDIT/


Gruss,

Jörg
 
Scheinbar muss ich eine bestimmte mISDN Version einsetzen ? Ich bekomme hier einen compile error mit obiger asterisk Version.

Geladene mISDN Version:

kernel: Modular ISDN Stack core version (1_1_2) revision ($Revision: 1.40 $)

Code:
make CROSS_COMPILE_TARGET= -C misdn
make[2]: Entering directory `/usr/src/asterisk-1.2/channels/misdn'
gcc -pipe -c -Wall -ggdb -DMISDN_1_2 -o isdn_lib.o isdn_lib.c
isdn_lib.c: In Funktion »manager_ec_enable«:
isdn_lib.c:4288: Fehler: »PIPELINE_CFG« nicht deklariert (erste Benutzung in dieser Funktion)
isdn_lib.c:4288: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
isdn_lib.c:4288: Fehler: für jede Funktion in der er auftritt.)
isdn_lib.c: In Funktion »manager_ec_disable«:
isdn_lib.c:4336: Fehler: »PIPELINE_CFG« nicht deklariert (erste Benutzung in dieser Funktion)
make[2]: *** [isdn_lib.o] Fehler 1
make[2]: Leaving directory `/usr/src/asterisk-1.2/channels/misdn'
make[1]: *** [misdn/chan_misdn_lib.a] Fehler 2
make[1]: Leaving directory `/usr/src/asterisk-1.2/channels'
make: *** [subdirs] Fehler 1
[root@defi-esser /usr/src/asterisk-1.2]

Gruss,

Jörg
 
Ich habe jetz mal chan_misdn-0.3.0-RC31 hier runtergeladen.

Und dann nach Beschreibung von hier getestet.

Also funktioniert hier prima mit dem setzen und löschen. Allerdings ist die Beschreibung im Wiki von löschen und prüfen falsch.(Ohne Zugang kann ichs leider nicht ändern ;) )

Prüfen ist *#21*ZielNr#
Löschen ist #21#

Also dann so:
Code:
exten => 551,1,Noop(Disable Callforward)
exten => 552,2,Set(_MISDN_KEYPAD=#21*${MSN}#)

exten => 551,1,Noop(Check Callforward)
exten => 553,2,Set(_MISDN_KEYPAD=*#21*${TARGET}*${MSN}#)

Hier mal ein nutzbares Beispiel zum ein und ausschalten. Wers gebrauchen kann. Einfach nur die MSN und Zielrufnummern anpassen bzw. gegen Variablen austauschen wer mag(die vielen xxxx Nummern ;) ).

Code:
[CD]
;Umleitung einschalten
exten => 905,1,Set(CD=${DB(umleitung/aktuell)})
exten => 905,n,GotoIf($["${CD}" = "1"]?CD|s-aus|1)
exten => 905,n,Goto,CD|s-an|1
exten => s-an,1,Set(DB(umleitung/aktuell)=1)
exten => s-an,n,Verbose(Umleitung eingeschaltet)
exten => s-an,n,Set(DUMMY=2)
exten => s-an,n,Playback(silence/1)
exten => s-an,n,Set(_MISDN_KEYPAD=*21*xxxxxxxxx14895*xxxxx5#)
exten => s-an,n,Dial,misdn/g:dialin/
exten => s-an,n,Hangup

;Umleitung ausschalten
exten => s-aus,1,Verbose(Umleitung ausgeschaltet)
exten => s-aus,n,Set(DUMMY=0)
exten => s-aus,n,Set(DB(umleitung/aktuell)=0)
exten => s-aus,n,Playback(silence/1)
exten => s-aus,n,Set(_MISDN_KEYPAD=#21*xxxx5#)
exten => s-aus,n,Dial,misdn/g:dialin/
exten => s-aus,n,Hangup

Funktionieren auch alle andere Keypad Funktionen ? Gibt es vom Switch auch eine Rückmeldung die man in asterisk als Variable nutzen könnte ? Das wäre noch das i-Tüpfelchen ;)


P.S. : DICKES Lob an crichter für diese gelungene Umsetzung. Ich kaufe auch weiterhin nur Karten von Beronet.

Gruss,

Jörg
 
danke fürs Lob :)

leider kann man nichts als ISDN Nachricht auswerten, was einem sagen kann ob die Umleitung aktiv ist oder nicht (bzw, obs überhaupt geklappt hat), ich hab schon alles mögliche gecheckt ..
 
Könnte man denn den Quittungston der zurück kommt nicht weiter leiten ans Telefon?
 
Also ich bekomme immer eine nette Ansage "Das Dienstmerkmal ist aktiviert" oder " Das Dienstmerkmal wurde deaktiviert" reicht dir das nicht ? Evtl kannste das ja auch nehmen und das Sprachfile auswerten. (Dateigröße ? ;) )

Gruss,

Jörg
 
Hallo, ich habe das jetzt bei mal mit eingebaut

exten => 701,1,Noop(Check Callforward)
exten => 701,2,Set(_MISDN_KEYPAD=*21*0173xxxxxxx*98xxxxx#)
exten => 701,3,System(sipsak -M -O desktop -B "Rufumleitung an" -s sip:[email protected] -H 192.168.178.10)
exten => 701,4,Dial,mISDN/g:TEports/
exten => 701,5,Hangup

Allerdings wird die Meldung "Das Dienstmerkmal wurde aktiviert" ständig wiederholt. Kann man den Dialbefehl noch so ausgestalten, dass er nach paar Sekunden dann selbst auf legt. Einmal die Ansage zu hören würde mir ja reichen. Vor allem muss ich das Gespräch aktiv auflegen.

Gruß Snuff
 
Hallo,

ich bin noch neu hier und habe mit:

Callforwarding with Keypad Elements

Since chan_misdn-0.3.1-rc31 you can modify the Callforwarding rules at your providers switch. To do that chan_misdn supports a channel Variable which is called MISDN_KEYPAD. In this variable you can encode special strings which modify the callforwarding rules in the switch. This is right now tested on German Telekom Switches.


A sample dialplan could look like:

exten => 551,1,Noop(Enable Callforward)
exten => 551,2,Set(_MISDN_KEYPAD=*21*${TARGET}*${MSN}#)

exten => 551,1,Noop(Disable Callforward)
exten => 552,2,Set(_MISDN_KEYPAD=*#21#${TARGET}#)

exten => 551,1,Noop(Check Callforward)
exten => 553,2,Set(_MISDN_KEYPAD=#21#)

;send an empty Setup to port 1, the switch will read the keypad message
exten => _55X,3,Dial(mISDN/1/)

experimentiert leider ohne erfolg

http://www.misdn.org/index.php/FAQ_chan_mISDN#Callforwarding_with_Keypad_Elements

ich benutze misdn und asterisk 1.6, danke für eure hilfe

was benötigt ihr für weitere unterstützung ?

Viele Grüße

Lars
 
anbei was misdn macht

Reloading SIP
== Using SIP RTP CoS mark 5
-- Executing [882@sip-2000:1] Verbose("SIP/3000-082cbd50", "Umleitungen ausschalten") in new stack
Umleitungen ausschalten
-- Executing [882@sip-2000:2] Set("SIP/3000-082cbd50", "_MISDN_KEYPAD=#21#") in new stack
-- Executing [882@sip-2000:3] Dial("SIP/3000-082cbd50", "mISDN/g:TE/") in new stack
P[ 0] --> Group Call group: TE
P[ 1] Group [TE] Port [1]
P[ 1] portup:1
P[ 1] channel with stid:0 not in use!
P[ 0] --> * NEW CHANNEL dad:(null) oad:(null)
P[ 0] misdn_new: no exten given.
P[ 1] * Queuing chan 0x82cf210
P[ 1] read_config: Getting Config
P[ 1] --> TON: Unknown
P[ 1] --> LTON: Unknown
P[ 1] --> CTON: Unknown
P[ 0] misdn_call: No Extension given!
-- Couldn't call g:TE/
P[ 1] $$$ CLEANUP CALLED pid:6
== Everyone is busy/congested at this time (0:0/0/0)
-- Auto fallthrough, channel 'SIP/3000-082cbd50' status is 'CHANUNAVAIL'
asterix*CLI>
 
Hi,

mir kommt es so vor als hättest du nix in den variablen
${TARGET}
und ${MSN}

stehn. Kannste du mal den kompletten Code posten und nich nur das
Beispiel von misdn.org ?

Ansonsten probier mal mein Beispiel das sollte klappen :)

Gruss,

Jörg
 
chan_lcr und lcr (mISDN V2 bzw. socket branch) wird das im nächsten git update bereitstellen.
Hier kann mann schonmal lesen wie das dann funktioniert.

Gruss,

Jörg
 
AWS Klappt nicht

Ich habe scheinbar das gleiche Problem wie lblabr.

Ich nutze eine Trixbox CE 2.8
misdn Version ist Stack core version (1_1_7_2) revision ($Revision: 1.40 $)

Mit jackfritts Beispiel bekomme ich:

-- Executing [905@from-internal:1] Set("SIP/45-b612e2b8", "CD=") in new stack
-- Executing [905@from-internal:2] GotoIf("SIP/45-b612e2b8", "0?CD|s-aus|1") in new stack
== Spawn extension (from-internal, 905, 3) exited non-zero on 'SIP/45-b612e2b8'
-- Executing [h@from-internal:1] Macro("SIP/45-b612e2b8", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("SIP/45-b612e2b8", "vw") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("SIP/45-b612e2b8", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("SIP/45-b612e2b8", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("SIP/45-b612e2b8", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("SIP/45-b612e2b8", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("SIP/45-b612e2b8", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/45-b612e2b8' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/45-b612e2b8'
trixbox*CLI>

Die extensions_custom.conf sieht an der Stelle so aus:
-----

[CD]
;Umleitung einschalten
exten => 905,1,Set(CD=${DB(umleitung/aktuell)})
exten => 905,n,GotoIf($["${CD}" = "1"]?CD|s-aus|1)
exten => 905,n,Goto,CD|s-an|1
exten => s-an,1,Set(DB(umleitung/aktuell)=1)
exten => s-an,n,Verbose(Umleitung eingeschaltet)
exten => s-an,n,Set(DUMMY=2)
exten => s-an,n,Playback(silence/1)
exten => s-an,n,Set(_MISDN_KEYPAD=*21*0171XXXXXXX*2424XXXX#)
exten => s-an,n,Dial,misdn/g:ptmp/
exten => s-an,n,Hangup

;Umleitung ausschalten
exten => s-aus,1,Verbose(Umleitung ausgeschaltet)
exten => s-aus,n,Set(DUMMY=0)
exten => s-aus,n,Set(DB(umleitung/aktuell)=0)
exten => s-aus,n,Playback(silence/1)
exten => s-aus,n,Set(_MISDN_KEYPAD=#21*2424XXXX#)
exten => s-aus,n,Dial,misdn/g:ptmp/
exten => s-aus,n,Hangup
-----

Ich bin der Meinung, es müsste exten => s-aus,n,Dial(misdn/g:ptmp/) heißen - dann bekomme ich jedoch den gleichen Fehler.

Verwende ich das Beispiel von misdn.org, kommt dabei folgendes raus:

-- Executing [551@from-internal:1] NoOp("SIP/45-b612e2b8", "Enable Call Forward") in new stack
-- Executing [551@from-internal:2] Set("SIP/45-b612e2b8", "_MISDN_KEYPAD=*21*0171XXXXXXX*2424XXXX#") in new stack
-- Executing [551@from-internal:3] Dial("SIP/45-b612e2b8", "mISDN/1/") in new stack
P[ 0] misdn_call: No Extension given!
-- Couldn't call 1/
== Everyone is busy/congested at this time (0:0/0/0)
-- Executing [551@from-internal:4] Playback("SIP/45-b612e2b8", "silence/1&cannot-complete-as-dialed&check-number-dial-again,noanswer") in new stack
-- <SIP/45-b612e2b8> Playing 'silence/1.slin' (language 'de')
-- <SIP/45-b612e2b8> Playing 'cannot-complete-as-dialed.ulaw' (language 'de')
== Spawn extension (from-internal, 551, 4) exited non-zero on 'SIP/45-b612e2b8'
-- Executing [h@from-internal:1] Macro("SIP/45-b612e2b8", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("SIP/45-b612e2b8", "vw") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("SIP/45-b612e2b8", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("SIP/45-b612e2b8", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("SIP/45-b612e2b8", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("SIP/45-b612e2b8", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("SIP/45-b612e2b8", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/45-b612e2b8' in macro 'hangupcall'
== Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/45-b612e2b8'
trixbox*CLI>

Die extensions_custom.conf sieht hier so aus:

[CD]
exten => 551,1,Noop(Enable Call Forward)
exten => 551,2,Set(_MISDN_KEYPAD=*21*0171XXXXXXX*2424XXXX#)

exten => 552,1,Noop(Check Call Forward)
exten => 552,2,Set(_MISDN_KEYPAD =*#21#2424XXXX#)

exten => 553,1,Noop(Disable Call Forward)
exten => 553,2,Set(_MISDN_KEYPAD=#21#)

, Send an empty set to port 1, the switch will read the keypad message
exten => _55X,3,Dial(mISDN/1/)

----

Es sieht so aus, als würde ihm der leere Dialstring nicht passen - hat jemand ne kreative Idee?
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.