Paralleles verarbeiten von gosub sektionen ?

lynckmeister

Neuer User
Mitglied seit
4 Apr 2006
Beiträge
140
Punkte für Reaktionen
0
Punkte
0
Hallo Forum ,

ich folgendes Problem :

bei einem Anruf sollen zwei dinge gleichzeitig passieren.
1. erstens es soll sofort ein sip telefon angerufen werden
2. es soll gewartet werden n sekunden und dann soll ein anderes telefon angerufen werden.

der befehl dial nimmt zwei nummern an , aber die werden logischer weise immer gleichzeitig angerufen.
wenn ich also in einem gosub zb mehrere subs angeben koennte oder in einer zeile zwei gosubs ( was ich nirgends gesehn habe und deshalb auch keinen syntax dafuer kenne) wäre mein problem gelöst. während das eine gosub direkt einen dial macht, hat das andere ein wait n vor dem dial.

vielleicht gibt es aber auch einen ganz anderen ansatz ?


grüße

filip
 
Hallo lynckmeister,

so richtig verstehe ich dein Problem nicht.
Du willst erst ein Telefon anrufen und nach n sekunden ein anderes?

Code:
exten => 0815,1,Dial(SIP/phone1,n)
exten => 0815,2,Dial(SIP/phone2)
 
äh nein , ich will zeitverzögert anrufen. zum schluß sollen beide telefone klingeln. das eine soll aber zuerst klingeln.
in deinem beispiel wird erst das eine angerufen , und wenn die n sekunden rum sind das andere... das erste soll aber weiter angerufen werden....
 
Code:
exten => 0815,1,Dial(SIP/phone1,n)
exten => 0815,2,Dial(SIP/phone1&SIP/phone2)
 
Was auch noch gehen würde aber nicht die schönste Lösung ist:

Code:
exten => 0815,1,Dial(SIP/phone1&Local/phone2@phones,n)

[phones]

exten => phone2,1,noop()
exten => phone2,n,wait(n)
exten => phone2,n,dial(SIP/phone2)
 
Pirat schrieb:
Code:
exten => 0815,1,Dial(SIP/phone1,n)
exten => 0815,2,Dial(SIP/phone1&SIP/phone2)



ja genauso habe ich's führt aber dazu , dass nach n sekunden der call zum sip phone neu aufgebaut wird und es kommt leider viel häufiger vor als man denkt, dass man genau in dem moment abhebt. der linksys reagiert dann so drauf, dass er den in dem moment neu ankommenden call ignoriert, damit ist das gespraech garnicht mehr erreichbar !
 
ah das sieht interessant aus, mit local wird also die prioreihe fuer phone2 angestossen ? das muss ich gleich mal testen ...
danke !
 
also du hast recht, so gehts.... wieso ist das eine "nicht schöne " lösung? wie wäre es denn schöner?

gruesse

filip
 
Nicht schön ist es weil man es nicht gut verallgemeinern kann.
Was machst du nun wenn es für 15 phones oder mehr gelten soll?
Das macht Deinen dialplan sehr unübersichtlich und unstrukturiert.
 
wie wäre es denn damit:
...
exten => 0815,1,Dial(SIP/1&Local/2@delay-5-sec)
...

[delay-5-sec]
...
exten => 2,1,Wait(5)
exten => 2,2,Dial(SIP/2)
...
 
ja, und ....?

gleiches steht auch oben!?
Das Problem besteht darin das du nicht die Wartezeit und/oder die Phone(s) dynamisch ändern kannst.

für die die Waittime würde es noch diese Lösung geben:


Code:
exten => 0815,1,Dial(SIP/1&Local/15@paralleldelay)

[paralleldelay]

exten => _X.,1,noOp()
exten => _X.,n,Wait(${EXTEN})
exten => _X.,n,Dial(SIP/phone2)
 
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.