Wahlschleife mit Zufallsprinzip

Imox

Mitglied
Mitglied seit
16 Mrz 2008
Beiträge
207
Punkte für Reaktionen
0
Punkte
16
hi Leute,

ich habe hier eine Wahlschleife wo der meine SipAccounts nacheinander abklappter ob der kanal belegt ist und dann halt den nächsten Sipaccount nimmt.

Mein Problem ist jetzt aber, dass meisten immer nur 2 oder 3 Leute gleichzeitig telefonieren und die unteren Sipaccounts nie genutzt werden. Das ist ein bisschen schlecht weil die ersten vorallem der erste SIPaccount extrem belastatet wird und die unteren kaum bzw. gar nicht.

kann ich das irgendwie so machen, dass der immer nach dem Zufallsprinzip ein sipaccount nimmt oder irgendwas anderes. aber halt so das alle sipaccounts mehr oder weniger gleichviel belastet werden.

derzeit ist mein erster sipacount mit 120 Stunden belastet der zweite mit 20 Stunden und dann kommt eigentlich gar nichts mehr. Das ist ein bisschen blöd.


ahh hier noch meine Wahlsschleife

Code:
exten => s,1,NoOp(${NR})
exten => s,n,Dial(SIP/${NR}@SIP_005,60,tT)
exten => s,n,GotoIf($[${DIALSTATUS} = CONGESTION]?5:12)
exten => s,n,Dial(SIP/${NR}@SIP_006,60,tT)
exten => s,n,GotoIf($[${DIALSTATUS} = CONGESTION]?7:12)
exten => s,n,Dial(SIP/${NR}@SIP_490,60,tT)
exten => s,n,GotoIf($[${DIALSTATUS} = CONGESTION]?9:12)
exten => s,n,Dial(SIP/${NR}@SIP_461,60,tT)
exten => s,n,GotoIf($[${DIALSTATUS} = CONGESTION]?11:12)
exten => s,n,Dial(SIP/${NR}@SIP_130,60,tT)
exten => s,n,Set(TIMEOUT(response)=30)
exten => s,n,Playback(vm-nobodyavail)
exten => s,n,WaitExten
exten => s,n,Hangup

p.s. warum ich nicht nur einen nehme. Jeder SIP account hat nur 1 kanal, sind leider nicht offen.

Viele Grüße

Imox
 
also du kannst das ganze mir paar zeilen mehr einfach machen.
Dafür brauchst du nur zwei weitere befehle.

Einam Random
http://www.das-asterisk-buch.de/2.1/applications-random.html
und gotoif
http://www.das-asterisk-buch.de/2.1/applications-gotoif.html

hier wohl ein ansatz

-= Info about application 'Random' =-

[Synopsis]
Conditionally branches, based upon a probability

[Description]
Random([probability]:[[context|]extension|]priority)
probability := INTEGER in the range 1 to 100
DEPRECATED: Use GotoIf($[${RAND(1,100)} > <number>]?<label>)


wobei ich dann einfach aus eins zu hundert, eins zu fünf machen würde...
 
vielen Dank,

habs zwar nicht ganz verstanden was du mir da geschrieben hast. Aber du hast mich auf den richtigen Weg gebracht :)

ich habs dann so hier gelöst. Weiß zwar nicht ob es ideal ist aber es funktioniert.


Code:
[macro-MobilOut]
exten => s,1,Set(zufall=${RAND(1,8)})
exten => s,n,NoOp(${zufall})
exten => s,n,NoOp(${NR})
exten => s,n,gotoif($["${zufall}"= "1" ]?MobileEins,1)
exten => s,n,gotoif($["${zufall}"= "2" ]?MobileZwei,1)
exten => s,n,gotoif($["${zufall}"= "3" ]?MobileDrei,1)
exten => s,n,gotoif($["${zufall}"= "4" ]?MobileVier,1)
exten => s,n,gotoif($["${zufall}"= "5" ]?MobileFunf,1)
exten => s,n,gotoif($["${zufall}"= "6" ]?MobileSechs,1)
exten => s,n,gotoif($["${zufall}"= "7" ]?MobileSieben,1)
exten => s,n,gotoif($["${zufall}"= "8" ]?MobileAcht,1)

exten => MobileEins,1,Dial(SIP/${NR}@SIP_005,60,tT)
exten => MobileEins,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileZwei,1,Dial(SIP/${NR}@SIP_006,60,tT)
exten => MobileZwei,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileDrei,1,Dial(SIP/${NR}@SIP_490,60,tT)
exten => MobileDrei,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileVier,1,Dial(SIP/${NR}@SIP_130,60,tT)
exten => MobileVier,10,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileFunf,1,Dial(SIP/${NR}@SIP_460,60,tT)
exten => MobileFunf,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileSechs,1,Dial(SIP/${NR}@SIP_461,60,tT)
exten => MobileSechs,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileSieben,1,Dial(SIP/${NR}@SIP_642,60,tT)
exten => MobileSieben,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)

exten => MobileAcht,1,Dial(SIP/${NR}@SIP_668,60,tT)
exten => MobileAcht,2,GotoIf($[${DIALSTATUS} = CONGESTION]?s,1)
 
Zuletzt bearbeitet:
Moin..

Weiss jemand warum das nicht geht?

[fax-out]
exten => _X.,1,Answer()
exten => _X.,n,Set(zufall=${RAND(1,1)})
exten => _X.,n,NoOp(${zufall})
exten => _X.,n,NoOp(${NR})
exten => _X.,n,gotoif($["${zufall}"= "1" ]?Carpo1,1)
exten => _X.,n,gotoif($["${zufall}"= "2" ]?Carpo2,1)
exten => _X.,n,gotoif($["${zufall}"= "3" ]?Carpo3,1)
exten => _X.,n,gotoif($["${zufall}"= "4" ]?Carpo4,1)
exten => _X.,n,gotoif($["${zufall}"= "5" ]?Carpo5,1)
exten => _X.,n,gotoif($["${zufall}"= "6" ]?Carpo6,1)

exten => Carpo1,1,Dial(SIP/carpo5130xxxx/${EXTEN})
exten => Carpo1,2,Hangup()

exten => Carpo2,1,Dial(SIP/carpo5130xxxx/${EXTEN})
exten => Carpo2,2,Hangup()

exten => Carpo3,1,Dial(SIP/carpo5130xxxx/${EXTEN})
exten => Carpo3,2,Hangup()

exten => Carpo4,1,Dial(SIP/carpo3674xxxx/${EXTEN})
exten => Carpo4,2,Hangup()

exten => Carpo5,1,Dial(SIP/carpo3674xxxx/${EXTEN})
exten => Carpo5,2,Hangup()

exten => Carpo6,1,Dial(SIP/carpo8411xxxx/${EXTEN})
exten => Carpo6,2,Hangup()

Nur mit
exten => _X.,n,Dial(SIP/carpo5130xxxx/${EXTEN})
geht es.

Hat jemand eine Idee?
 
hallo rannreiser,

das ist ein bisschen falsch und du hast nicht gesehn das ich macro bentuze.

hier mal eine Lösung für die die funktioniert:

zum rausrufen benutzt die exten hier:

Code:
[sip-out]
exten => _X.,1,Set(NR=${NR}${EXTEN})
exten => _X.,2,Macro(faxOut)


und dadrunter schreibst du einfach das macro so hier rein

Code:
[[COLOR="Red"]macro-faxOut[/COLOR]]
exten => _X.,1,Answer()
exten => _X.,n,Set(zufall=${RAND(1,[COLOR="red"]6[/COLOR])})
exten => _X.,n,NoOp(${zufall})
exten => _X.,n,NoOp(${NR})
exten => _X.,n,gotoif($["${zufall}"= "1" ]?Carpo1,1)
exten => _X.,n,gotoif($["${zufall}"= "2" ]?Carpo2,1)
exten => _X.,n,gotoif($["${zufall}"= "3" ]?Carpo3,1)
exten => _X.,n,gotoif($["${zufall}"= "4" ]?Carpo4,1)
exten => _X.,n,gotoif($["${zufall}"= "5" ]?Carpo5,1)
exten => _X.,n,gotoif($["${zufall}"= "6" ]?Carpo6,1)

exten => Carpo1,1,Dial(SIP/carpo5130xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo1,2,Hangup()

exten => Carpo2,1,Dial(SIP/carpo5130xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo2,2,Hangup()

exten => Carpo3,1,Dial(SIP/carpo5130xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo3,2,Hangup()

exten => Carpo4,1,Dial(SIP/carpo3674xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo4,2,Hangup()

exten => Carpo5,1,Dial(SIP/carpo3674xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo5,2,Hangup()

exten => Carpo6,1,Dial(SIP/carpo8411xxxx/${[COLOR="red"]NR[/COLOR]})
exten => Carpo6,2,Hangup()


ich hab dir mal die zeilen die ich geändert habe rot markiert. ich hoffe es hat dir geholfen ;) und eigentlich musst du das nur 1zu1 in deine extensions.conf kopieren und es müsste funktionieren :D


Gruß Imox
 
Danke für die Hilfe, so funktionierts:

Code:
[fax-out]

exten => _X.,1,Set(NR=${NR}${EXTEN})
exten => _X.,2,Macro(faxOutselect)

[macro-faxOutselect]
exten => s,1,Answer()
exten => s,n,Set(zufall=${RAND(1,6)})
exten => n,NoOp(${zufall})
exten => s,n,NoOp(${NR})
exten => s,n,gotoif($["${zufall}"= "1" ]?Carpo1,1)
exten => s,n,gotoif($["${zufall}"= "2" ]?Carpo2,1)
exten => s,n,gotoif($["${zufall}"= "3" ]?Carpo3,1)
exten => s,n,gotoif($["${zufall}"= "4" ]?Carpo4,1)
exten => s,n,gotoif($["${zufall}"= "5" ]?Carpo5,1)
exten => s,n,gotoif($["${zufall}"= "6" ]?Carpo6,1)

exten => Carpo1,1,Dial(SIP/carpo5130xxxx/${NR})
exten => Carpo1,2,Hangup()

exten => Carpo2,1,Dial(SIP/carpo5130xxxx/${NR})
exten => Carpo2,2,Hangup()

exten => Carpo3,1,Dial(SIP/carpo5130xxxx/${NR})
exten => Carpo3,2,Hangup()

exten => Carpo4,1,Dial(SIP/carpo3674xxxx/${NR})
exten => Carpo4,2,Hangup()

exten => Carpo5,1,Dial(SIP/carpo3674xxxx/${NR})
exten => Carpo5,2,Hangup()

exten => Carpo6,1,Dial(SIP/carpo8411xxxx/${NR})
exten => Carpo6,2,Hangup()

Das Makro benötigt wohl unbedingt die s-Extension.
 
Das ist aber alles recht umständlich. Hier eine Kurzfassung:

Code:
exten => _X.,1,Set(zufall=${RAND(1,6)})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=1]?5130xxx)})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=2]?5130xxx:${sipkonto})})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=3]?5130xxx:${sipkonto})})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=4]?3674xxx:${sipkonto})})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=5]?3674xxx:${sipkonto})})
exten => _X.,n,Set(sipkonto=${IF($[${zufall}=6]?8411xxx:${sipkonto})})
exten => _X.,n,Dial(SIP/carpo${sipkonto}/${EXTEN})
exten => _X.,n,Hangup

Rentier
 

Statistik des Forums

Themen
246,300
Beiträge
2,249,714
Mitglieder
373,904
Neuestes Mitglied
Elemir
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.