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

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
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:

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
Ü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
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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

crich

Mitglied
Mitglied seit
1 Sep 2005
Beiträge
529
Punkte für Reaktionen
0
Punkte
0
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.
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
[[email protected] /usr/src/asterisk-1.2]
Gruss,

Jörg
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

crich

Mitglied
Mitglied seit
1 Sep 2005
Beiträge
529
Punkte für Reaktionen
0
Punkte
0
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 ..
 

baeckerman83

Mitglied
Mitglied seit
1 Sep 2005
Beiträge
238
Punkte für Reaktionen
0
Punkte
0
Könnte man denn den Quittungston der zurück kommt nicht weiter leiten ans Telefon?
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

Snuff

Aktives Mitglied
Mitglied seit
23 Jun 2006
Beiträge
1,171
Punkte für Reaktionen
0
Punkte
36
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
 

lblabr

Neuer User
Mitglied seit
18 Mai 2009
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
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
 

lblabr

Neuer User
Mitglied seit
18 Mai 2009
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
anbei was misdn macht

Reloading SIP
== Using SIP RTP CoS mark 5
-- Executing [[email protected]:1] Verbose("SIP/3000-082cbd50", "Umleitungen ausschalten") in new stack
Umleitungen ausschalten
-- Executing [[email protected]:2] Set("SIP/3000-082cbd50", "_MISDN_KEYPAD=#21#") in new stack
-- Executing [[email protected]: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>
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

jackfritt

Mitglied
Mitglied seit
28 Dez 2005
Beiträge
325
Punkte für Reaktionen
0
Punkte
16
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
 

freestylermuc

Neuer User
Mitglied seit
14 Okt 2009
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
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 [[email protected]:1] Set("SIP/45-b612e2b8", "CD=") in new stack
-- Executing [[email protected]: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 [[email protected]:1] Macro("SIP/45-b612e2b8", "hangupcall") in new stack
-- Executing [[email protected]:1] ResetCDR("SIP/45-b612e2b8", "vw") in new stack
-- Executing [[email protected]:2] NoCDR("SIP/45-b612e2b8", "") in new stack
-- Executing [[email protected]:3] GotoIf("SIP/45-b612e2b8", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [[email protected]:6] GotoIf("SIP/45-b612e2b8", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [[email protected]:9] GotoIf("SIP/45-b612e2b8", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [[email protected]: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 [[email protected]:1] NoOp("SIP/45-b612e2b8", "Enable Call Forward") in new stack
-- Executing [[email protected]:2] Set("SIP/45-b612e2b8", "_MISDN_KEYPAD=*21*0171XXXXXXX*2424XXXX#") in new stack
-- Executing [[email protected]: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 [[email protected]: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 [[email protected]:1] Macro("SIP/45-b612e2b8", "hangupcall") in new stack
-- Executing [[email protected]:1] ResetCDR("SIP/45-b612e2b8", "vw") in new stack
-- Executing [[email protected]:2] NoCDR("SIP/45-b612e2b8", "") in new stack
-- Executing [[email protected]:3] GotoIf("SIP/45-b612e2b8", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [[email protected]:6] GotoIf("SIP/45-b612e2b8", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [[email protected]:9] GotoIf("SIP/45-b612e2b8", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [[email protected]: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:

3CX PBX - GRATIS
Linux / Win / Cloud

Neueste Beiträge

Statistik des Forums

Themen
233,311
Beiträge
2,032,706
Mitglieder
351,874
Neuestes Mitglied
rob-otik