S2M/PMX: Sehe wohl den Wald vor lauter Bäumen nicht ;)

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Hi zusammen!

Habe einen Asterisk-Server im Betrieb, der drei E100P-Karten hat, also für 93 Kanäle. Zwei Karten hängen direkt an S2M-Anschlüssen, an der dritten Karte hängt eine PMX-TK-Anlage, die bislang an diesen S2Ms hing.

62 Kanäle nehmen Amtsseitig ankommende Rufe an, leiten sie weiter etc.pp. - soweit alles OK, im Griff und funktioniert bereits. In der nächsten Stufe sollen die User über die TK-Anlage über Asterisk ein Amt bekommen oder sich "hindurchwählen" können, wofür sie ja 31 Kanäle haben. Diese abgehenden Gespräche sollen dann über die 62 Kanäle verteilt werden.

Die TK-Anlage verfügt über den Rufnummernblock xx-1000 bis xx-7999 (xx für die Stammnummer).

Wähle ich am Systemtelefon eine externe Rufnummer und hebe DANN erst den Hörer ab, kann ich die komplette Rufnummer über [highlight=yellow:40b5b59d83]exten => _.,1,Dial(ZAP/g1,${EXTEN},30)[/highlight:40b5b59d83] abfangen und weiterverbinden. Alles wunderbar.
Dies ist aber nicht gewünscht.
Der User soll sich "wie gewohnt" ein Amt der TK-Anlage geben lassen, bekommt quasi ein Amston der Anlage simuliert. Nun soll der User in Ruhe die gewünschte Nummer eintippern und Asterisk soll ihn dann weiterverbinden.

Hier beginnt das Problem:
- über [highlight=yellow:40b5b59d83] exten => _.[/highlight:40b5b59d83] kann ich dies so nicht mehr abfangen, da der Zaptel-Treiber lt. Doku hartkodiert 3 Sekunden "lauscht" und dann die Eingabe als beendet betrachtet. In der Praxis schafft man so etwa 5 Ziffern
- über [highlight=yellow:40b5b59d83]exten => s,[/highlight:40b5b59d83] klappt gar nichts, da Asteriskt in diesem Fall ja keine Rufnummer hat, wie man es bei reinem ISDN realisieren würde. [highlight=yellow:40b5b59d83]exten s[/highlight:40b5b59d83] wird nicht angesprungen, da der User bereits eine Wahl getätigt hat und Asterisk diese nicht im Dialplan zuorden kann
- [highlight=yellow:40b5b59d83]exten i[/highlight:40b5b59d83] klappt auch nicht, da dafür erst aktiv in den Dialplan "hineingesprungen" werden müsste
- den Ruf annehmen und dann (z.B. nach Ansage) eine Nummer wählen lassen scheitert daran, da hierfür auf DTMF umgeschaltet werden müsste. Ist leider auch nicht gewünscht.

Und hier komme ich im Moment nicht mehr weiter...
Ich hoffe, ich habe hier soweit alles dokumentiert und nix vergessen :wink:
Wäre für jede Hilfestellung dankbar!!!

-
Larry
 

Hupe

Aktives Mitglied
Mitglied seit
8 Apr 2004
Beiträge
2,586
Punkte für Reaktionen
0
Punkte
0
Hast Du es mal mit DISA probiert? Dann bekommt ma ganz normal ein Freizeichen. Hab es allerdings noch nie mit ISDN-Telefonen probiert.
Blackvel hatte irgendwann auch mal was im Zusammenhang mit HFC-Karten geschrieben. Ist aber schon ein bischen her.
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Ja, aber auch dort musste ich das Telefon auf DTMF umschalten. Ausserdem müsste man zu der 0 der TK-Anlage noch eine weitere Ziffer wählen, damit Asterisk das dann mitbekommt. Der User hätte dann Bspw. zwei Nullen zu wählen.
Das wäre zwar vertretbar, aber ich höre schon den ganzen Mob sagen "vorher mussten wir das so nicht machen..." :roll:
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Ah jetzt ja! Das sieht nach 'nem Plan aus; werde ich morgen mal testen...
Aber wenn ich das richtig sehe, hat Blackvel dort das gleiche Problem, dass er ERST wählt und DANN den Hörer abnimmt. Für mich wäre das völlig OK, aber die User...die User...

However, einstweilen heissen Dank. Morgen gibts dann Neuigkeiten...

-
Larry
 

allesOK

Mitglied
Mitglied seit
24 Mai 2004
Beiträge
732
Punkte für Reaktionen
0
Punkte
0
Gibt es denn die Möglichkeit das Timeout (3 sek) durch eine leichte Anpassung am Code hochzuschrauben??? Ausserdem: Hast du das wirklich mal ausprobiert? Ist es nicht so, dass die 3 Sekunden nach jeder getippten Ziffer wieder von vorne laufen?


Weiterhin: Habe zwar nicht so viele Kanäle aber in diesem Thread
http://www.ip-phone-forum.de/forum/viewtopic.php?t=3023
habe ich eine entsprechende Lösung für die HFC-Karten erforscht *g*.
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Oh, danke für den Tip! Das sieht wirklich sehr vielversprechend aus.
Langsam deucht mir, dass es an den Parametern SIGNALLING, IMMEDIATE, OVERLAPDIAL liegt...

derzeit:
SIGNALLING (1.+2. E100P = PRI_CPE)
SIGNALLING (3. E100P = PRI_NET)
IMMEDIATE=NO
OVERLAPDIAL= (auskommentiert, default, wohl damit yes)

Morgen mal rumschrauben...
----------
Ja, laut http://voip-info.org (genauer Link liegt beim Kunden), liesse sich der Timeout im Code ändern. Habe ich aber noch nicht geschaut. Sollte aber nicht allzu dolle schwierig sein.
Das Timeout gilt leider in diesem Fall NICHT nach jeder gewählter Ziffer. Dies gilt nur bei einem angenommenen Ruf (per ANSWER) mittels DIGITTIMEOUT. Habe ich aber auch schon probiert, geht nur mit DTMF.
Der Zaptel-Treiber der Digium-Karte kann wohl schon den "nackten" Ruf auswerten und horcht eben genau dort 3 Sekunden, bevor er dann das getippte als Blockwahl (richtig?) an Asterisk weitergibt. Wenn man schnell genug wählt oder eine kurze Zielwahl nimmt, klappts dann auch mit "_.,1,Dial...."
 

rollo

IPPF-Promi
Mitglied seit
5 Jul 2004
Beiträge
8,289
Punkte für Reaktionen
1
Punkte
38
Vielleicht macht dieses einfache Beispiel was Du möchtest:

Code:
exten => 0,1,Wait,1 ; Wait a second, just for fun
exten => 0,2,Answer ; Answer the line
exten => 0,3,DigitTimeout,5 ; Set Digit Timeout to 5 seconds
exten => 0,4,ResponseTimeout,10 ; Set Response Timeout to 10 seconds
exten => 0,5,BackGround(onhold);onhold music, man könnte hier auch einen Wählton einspielen
exten => 0,6,BackGround(timeout_msg) ; Sie haben zu lange gewartet.
Ich benutze das, um mich in * einzuwählen. BackGround läuft solange wie das onhold file dudelt, wird allerdings beim ersten digit unterbrochen. DigitTimeout und ResponseTimeout liessen sich finetunen.

Die eingegebene Sequenz wird dann gemäß Dialplan weiter verarbeitet. Eine Amtsnull kann dann da noch eingefügt werden.

jo
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Jepp, danke rollo, aber das hatte ich gestern schon probiert. An sich klappts wie gewünscht, aber der User müsste nach Rufannahme auf DTMF umschalten, was der Kunde ausdrücklich nicht wünscht. Kunde ist König. Und wir dürfen uns was einfallen lassen :roll:
 

Florian

Neuer User
Mitglied seit
31 Aug 2004
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hi!

Die Frage von Larry bezieht sich doch auf eine Eigenschaft, die eigentlich jede handelsübliche Telefonanlage besitzt. Ich will einfach nicht glauben, dass soetwas (interner Wählton -> 0 -> Amt -> (ohne DTMF) wählen) nicht möglich ist. Vielleicht bin ich auch auf dem falschen Weg, deshalb meine Frage :)

Danke schonmal,
Florian
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Moin!

Ich will einfach nicht glauben, dass soetwas (interner Wählton -> 0 -> Amt -> (ohne DTMF) wählen) nicht möglich ist.
Das glaube ich auch nicht! Habe mit Asterisk bislang schon so viele Kühe vom Eis bewegt, da mag ich das einfach nicht akzeptieren. Oder anders gesagt: Geht nicht, gibts nicht! 8)

Bin trotz meiner Ankündigung, am Dienstag die diskutierten Parameter zu testen, noch nicht dazu gekommen. Habe mit dem Kunden "die Tage Abends" vereinbart, da an der TK-Anlage ca. 300 User hängen und ich daher nur Abends "mal eben alles ausfallen" lassen kann... Glücklicherweise steckt jetzt auch keine allzu grosse Eile mehr dahinter, da alles andere bestens funktioniert und der "Durchschliff" der TK-Anlage noch das i-Tüpfelchen sein soll.

Ich halte Euch auf dem laufenden...

-
Larry
 

Florian

Neuer User
Mitglied seit
31 Aug 2004
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hi!

Ich habe die Amtsholung jetzt soweit realisiert (Ohne DISA, DTMF):

* Hörer abheben -> Interner Wählton -> 0 -> Amt -> Erste Ziffer eingegeben -> Stumm -> Weiterwählen -> Gespräch.

* Direktwahl mit aufgelegtem Hörer

Was mir aber nicht gelingt ist, nur die Null zu wählen ohne vorher den Hörer abgenommen zu haben. Dann geht nur noch DTMF. Scheinbar gibts dann ein "Answer" von chan_zap... Ich bin aber noch nicht weitgenug durchgestiegen um dazu etwas sagen zu können. Weiß jmd. mehr?
Gruss,
Florian
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
Moin!
Bei mir noch nix neues. Kunde hat unseren Termin "wegen schön Wetters" auf Montag terminiert. 8) Ok, bin ich überzeugt von! :wink:

Habe mir die Parameter (immediate etc.) noch mal auf der Zunge zergehen lassen und bin mir mittlerweile sicher, dass genau damit mein Eingangs beschriebenes Problem zu lösen ist.

Zitat aus voip-info.org
"immediate: Normally (i.e. with immediate set to 'no', the default), when you lift an FXS handset, the Zaptel driver provides you a dialtone and listens for digits that you dial, passing them on to Asterisk. Asterisk waits until the number you've dialed matches an extension, and then begins executing the first command on the matching extension. If you set immediate=yes, then Asterisk will instruct the Zaptel driver to not generate a dialtone when you lift a handset, instead passing control immediately to Asterisk. Asterisk will start executing the commands for this channel's "s" extension. This is sometimes referred to as "batphone mode". Default: no.
immediate=yes"
Na, wenns das nicht ist! Damit müsste ich endlich in meiner "exten => s," 'rauskommen, um lauschen zu können, was der User sonst noch wählt...
 

Larry

Neuer User
Mitglied seit
30 Aug 2004
Beiträge
96
Punkte für Reaktionen
0
Punkte
0
@Florian:

Fein! Wie hast Du's gelöst? Welche Hardware (s2m, capi, etc.) setzt Du denn ein?
 

Florian

Neuer User
Mitglied seit
31 Aug 2004
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hi Larry!

Hardware: HFC-Karte / zaphfc
Lösung ist noch nicht hundertprozentig sauber ausformuliert.

* immediate=no / overlapdial=no
* extensions.conf:

[Amt]
exten => s, 1, StopPlayTones
exten => _X., 1, Dial(mISDN/1/${Amt1}${EXTEN})

[Intern]
exten => s, 1, playtones(int)

exten => 0, 1, playtones(dial)
exten => 0, 2, agi,getonegoto.agi
exten => 0, 3, StopPlaytones
exten => 0, 4, agi,agi-ptest.agi

exten => _0X., 1, Dial(mISDN/1/${EXTEN:1})

Wichtig war mir, dass nach der Wahl der ersten Ziffer im "Amtsmodus" der Wählton wieder verschwindet. Die Skripte sind noch nicht perfekt, ich denke ich werde das entweder als AGI oder evtl. als app-modul sauber programmieren. wichtig ist mir im Moment nur, dass ich alle Einzelteile lauffähig habe, d.h. zu prüfen, ob alles so geht wie ich mir das vorstelle.

Ich könnte mir vorstellen, dass man ein app_amtsholung schreibt, dass den Grundgedanken (int. -> amt -> usw.) schon abhandelt.

Gruss,
Florian
 

allesOK

Mitglied
Mitglied seit
24 Mai 2004
Beiträge
732
Punkte für Reaktionen
0
Punkte
0
Was sind denn getonegogo.agi und agi-ptest.agu???
 

Florian

Neuer User
Mitglied seit
31 Aug 2004
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
@allesOK: ebend... das sind skripte die ich zum Testen verwendet habe. Deshalb nicht ausformuliert... Ich bin gerade dabei, alles sauber zu programmieren, dann gibts den kompletten Lösungsweg... Scheint aber soweit zu funktionieren. Wie gesagt, das einzige Manko ist, dass eine Blockwahl mit der Ziffer 0 nicht funktioniert. Also:

0 -> Hörer abnehmen geht nicht
0XXXXX -> geht (also vollständige Rufnummer)

Gruss,
Florian
 

allesOK

Mitglied
Mitglied seit
24 Mai 2004
Beiträge
732
Punkte für Reaktionen
0
Punkte
0
Ok, dann sind wir mal gespannt!
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
233,141
Beiträge
2,030,641
Mitglieder
351,513
Neuestes Mitglied
Comnovis