CLI Befehl um nach draussen anzurufen ?!

IBozkurt

Neuer User
Mitglied seit
6 Sep 2010
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

gibt es einen CLI Befehl mit dem man nach draussen telefonieren kann?!
Ich kenne nur den Befehl "console dial ...." um bestimmte Extensions anzuwählen die sich "intern" im Asterisk befinden.
Aber wie schaffe ich es über CLI Ebene eine Rufnummer die außerhalb (also an einem SIP Registrar angemeldet sind) ist anzurufen?

Keine Angst ich habe nicht vor damit irgendeinen Schindluder zu betreiben, ich würde das nur gerne wissen ob dieses direkt oder "indirekt" möglich ist (Anwählen einer Rufnummer über CLI).

Würde mich freuen wenn irgendeiner dazu Tips hätte.
 
Hallo,

für die CLI gibts ein originate.

Code:
CLI> originate SIP/01234@sipout extension 987@intern

ruft 01234 über sipout an und verbindet dann mit der exten 987 im Context intern.

Weitere Parameter wie Timeout oder CallerID kann man damit nicht einstellen, das geht nur bei Call-Files oder AMI.
 
Danke für die schnelle Antwort.

Wenn ich den Befehl originate SIP/[email protected] extension 2000@meine-telefone ausführen möchte erscheint folgende Meldung:

originate SIP/[email protected] extension 2000@meine-telefoneoriginate SIP/[email protected] extension 2000@meine-telefone
== Using SIP RTP CoS mark 5
-- Got SIP response 400 "Fehler: Befehl nicht korrekt (SIP Befehl nicht RFC3261-konform) (34)" back from 217.0.132.118

Es funktioniert nicht. Scheinbar fehlt der Display Name der Extension die anruft. Allerdings habe ich ein Softphone eingerichtet (mit einem Wirknetzaccount ausgestattet) welche auch die Information Display Name beinhaltet.
Was ist da nicht richtig?!
 
Dann könntest Du allenfalls versuchen, einen Local-Channel zu verwenden und da zuerst alle notwendigen Daten zu setzen.
 
Ich bin mir nicht sicher ob der fehlende Display Name das Problem war (war nur eine Vermutung).

Wie erstelle ich einen lokalen Channel bzw. was genau meinst Du damit?!

Ich führe den Befehl "originate SIP/[email protected] extension 2000@meine-telefone" aus und habe folgendes in der Sip.conf bzw. Extensions.conf
Code:
[COLOR="Red"][Edit foschi: code-Tags hinzugefügt!][/COLOR]

Sip.conf:
[code]
port=5060
bindaddr=0.0.0.0

maxexpirey=240
defaultexpirey=240
register => 061513978787:Passwort:[email protected]/2000

[2000]
type=friend
secret=1234
username=2000
context=meine-telefone
host=dynamic
canreinvite=no

[2001]
type=friend
secret=1234
username=2001
context=meine-telefone
host=dynamic

[2002]
type=friend
secret=1234
username=2002
context=isdnkarte
host=dynamic

[2003]
type=friend
secret=1234
username=2003
context=meine-telefone
host=dynamic

[tel.t-online.de]
type=peer
context=von-voip-provider
username=*******
fromuser=061513978787
secret=******** 
host=tel.t-online.de
fromdomain=tel.t-online.de
qualify=yes
insecure=port,invite
nat=yes
canreinvite=no

context=default                 ; Default context for incoming calls

Extensions.conf:
Code:
[meine-telefone]
exten => 1001,1,Answer()
exten => 1001,2,Playback(hello-world)
exten => 1001,3,Hangup()

exten => 2000,1,Dial(SIP/2000)
exten => 2001,1,Dial(SIP/2001)


exten => _0[1-9].,1,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
exten => _0[1-9].,2,Monitor(wav,${CALLFILENAME},m)
exten => _0[1-9].,3,Dial(SIP/${EXTEN}@tel.t-online.de)
exten => _0[1-9].,4,Congestion()


exten => 061518004631,1,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
exten => 061518004631,n,Monitor(wav,${CALLFILENAME},m)
exten => 061518004631,n,Dial(SIP/${EXTEN}@tel.t-online.de)
exten => 061518004631,n,Congestion()


[von-voip-provider]
exten => 061513978787,1,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
exten => 061513978787,2,Monitor(wav,${CALLFILENAME},m)
exten => 061513978787,3,Dial(SIP/2000)
exten => 061513978787,4,Congestion()

[isdnkarte]
exten => 8002062,1,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
exten => 8002062,2,Monitor(wav,${CALLFILENAME},m)
exten => 8002062,3,Dial(SIP/2002)
exten => 8002062,4,Congestion()

exten => _9.,1,Set(CALLFILENAME=${TIMESTAMP}-${CALLERIDNUM}-${EXTEN})
exten => _9.,2,Monitor(wav,${CALLFILENAME},m)
exten => _9.,3,Dial(CAPI/contr1/8002062:${EXTEN:1})
exten => _9.,4,Congestion()
 
Bitte solche Angaben künftig in Code-Tags packen, dann wird das übersichtlicher.

Ich kann mich auch erinnern, dass T-Online in Sachen Displayname empfindlich ist, von daher kann das schon sein.

Beispiel für einen Local-Channel:

extensions.conf
Code:
[abgehend]
exten => _XXX.,1,Set(CALLERID(number)=01234567)
exten => _XXX.,n,Set(CALLERID(name)=01234567)
exten => _XXX.,n,Dial(SIP/${EXTEN}@sip-out)

CLI> originate Local/056789@abgehend extension 987@intern
 
Danke vielmals für die sehr kompetente und schnelle Hilfe.
Mit dem Befehl "originate Local/061516804532@abgehend extension 2000@meine-telefone" kann ich jetzt nach draussen anrufen.
Allerdings klingelt die Extension 2000 dann auch, und weiter wenn der Angerufene bereits angenommen hat. Ich hatte gedacht dass der Befehl dafür sorgt dass die Extension 2000 die Rufnummer 061516804532 erreicht und bei Abnahme dann das Gespräch aufgebaut wäre - dem ist aber nicht so.
Wenn die Annahme erfolgt hört die Rufnummer 061516804532 die Extension klingeln und erst wenn die Extension abhebt ist das Gespräch aufgebaut.
Schafft man das automatische Entgegenehmen nicht mit dem Befehl Answer() ?!
 
Oh, dann hab ich Dich falsch verstanden, ich dachte Du wolltest gezielt ein externes Ziel anrufen.

originate (CLI oder AMI) und Call-Files arbeiten grundsätzlich so, dass die als Channel angegebene Seite immer als erstes angerufen, und wenn dort abgenommen wird an die als Extension angegebene Stelle im Dialplan verbunden wird.

Wenn Du möchtest, dass erst die Nebenstelle klingelt und wenn dort abgenommen wird die externe Nummer gewählt wird, musst Du den Befehl umdrehen.

CLI> originate SIP/2000 extension 0654321@abgehend
 
Fraglich wäre für mich ob es möglich ist ohne eine entsprechende Extension anzulegen diesen Call nach draussen zu machen - also einen Anruf ohne selber eine Extension zu definieren.
Durch Voransetzung der Extension im Befehl "originate" ist aber nicht gewährleistet dass die Extension bereits abgehoben hat.
 
Ich hatte die Frage ob die Nutzung des originate-Befehl ohne Extension möglich ist.
Entschuldige meine etwas kryptische Ausdrucksweise.

Grüße
 
Ja, ist es. Siehe hier.

Wahrscheinlich wirst Du damit aber wieder das Problem mit dem Displaynamen haben. Aber warum willst Du das überhaupt machen?
 
Ich versuche automatische Anrufe zu generieren um in letzter Instanz zu prüfen ob die Einstellungen für einen VoIP Account (z.B. Weiterleitung, Anrufer Blockade) greifen.
 
Was meinst Du immer mit Extension? Für mich ist Extension im originate das Gegenteil zur Application. Meinst Du mit "ohne Extension", dass keine Nebenstelle (=Endgerät) beteiligt ist?

Erklär mal bitte ganz ausführlich und Blondinentauglich, was Du genau vor hast.

Du willst einen abgehenden Anruf erzeugen, ohne dass bei Dir die Nebenstelle klingelt, möchtest aber dann wissen, ob dieser Anruf durchgegangen ist oder nicht?
 
**********************************************************>Was meinst Du immer mit Extension? Für mich ist Extension im originate das >Gegenteil zur Application. Meinst Du mit "ohne Extension", dass keine >Nebenstelle (=Endgerät) beteiligt ist?
******************************************************
Ja richtig, schafft es Asterisk ohne Nebestelle nach draussen anzurufen?!
Aber nach näherer Betrachtung für mein Projekt gar nicht von Bedeutung.


>Erklär mal bitte ganz ausführlich und Blondinentauglich, was Du genau vor >hast.

Das was ich am Ende zu bewerkstelligen habe ist folgendes:
Ich muss Testklassen schreiben (die Asterisk unterstützt) Werte zurückliefern i.S.v. eingestellte Weiterleitung hat gegriffen oder Anruferblockade ist erfolgt.
Zu diesem Zweck habe ich zum einem Extensions erstellt und diesen Wirknetzaccounts (von T-Online - ich teste die Testumgebung von T-Online) zugewiesen. Die Extensions werden dann in Snom Phones eingetragen die automatisch einen Anruf annehmen sollen und eine Wavedatei abspielen sollen - zur Simulation einer bspw. Weiterleitung wird dann z.B. ausgegeben "Anruf wurde an Rufnummer XX weitergeleitet".
Darüber hinaus sollen sämtliche Gespräche aufgezeichnet werden um sicher zu sein, dass ein Test erfolgreich verlief.

Die Details würden hier zu weit führen.



>Du willst einen abgehenden Anruf erzeugen, ohne dass bei Dir die >Nebenstelle klingelt, möchtest aber dann wissen, ob dieser Anruf >durchgegangen ist oder nicht?

Hat sich wohl erledigt.
Na ja, wenn man es genauer betrachtet muss ich eine Extension mit einem entsprechenden Account (von T-Online) "füttern" um genau zu wissen ob diese Rufnummer angerufen wurde, da ich nur bei dieser Extension Einfluß darauf habe was diese abspielt (Stichwort: Sounddatei "Sie haben Rufnummer XX angerufen").
 
/me ist kein Blondinchen, aber versteht die ausführliche Erklärung trotzdem oder genau deswegen immer noch nicht so ganz.
 
@stinkstiefel: Hm, ich auch nicht so wirklich, liegt vielleicht an den braunen Strähnchen.

@IBozkurt: Ich geb Dir jetzt einfach eine kleine Sammlung an die Hand, aber dann musst Du selber sehen, wie Du damit zurecht kommst.

Das hatten wir ja schon:
Code:
[abgehend]
exten => _XXX.,1,Set(CALLERID(number)=01234567)
exten => _XXX.,n,Set(CALLERID(name)=01234567)
exten => _XXX.,n,Dial(SIP/${EXTEN}@sip-out)
exten => _XXX.,n,Noop(${DIALSTATUS})

originate SIP/2000 extension 0654321@abgehend
=> Nebenstelle 2000 wird über SIP angerufen, sobald jemand abnimmt wird eine Verbindung zu 0654321 über sip-out hergestellt. In DIALSTATUS siehst Du, was passiert ist.

Mit dem gleichen extensions.conf Abschnitt und
originate Local/0654321@abgehend extension s@test
=> 0654321 wird über sip-out angerufen, sobald jemand abnimmt wird er mit s in [test] verbunden. Das könnte zB. ein
exten=>s,1,Playback(GutenMorgen)
sein. Oder auch ein Dial(SIP/2000)
Zusätzlich könntest Du in
exten=>failed,1,Noop(Ging niemand ran)
sehen, wenn die Verbindung zu 0654321 nicht aufgebaut werden konnte.

originate Local/0654321@abgehend application Playback GutenMorgen
=> genau das gleiche wie zuvor, nur ohne den Context [test], sobald bei 0654321 jemand abnimmt, wird direkt das Playback ausgeführt. Ebenso müsste hier die auswertung über die failed-extension funktionieren.

Sry, aber ich kann Dir ansonsten leider nicht weiterhelfen.
 
Nochmal grob erklärt was gemacht werden muss:
Ich werde Asterisk Extensions einrichten die an einem VoIP Account registriert sind. Diese Extensions werden wenn diese angerufen werden den Anruf automatisch entgegennehmen (das bewerkstellige ich durch Nutzung eines Snom Phones welches die automatische Rufannahme realisiert) und dann ein Audio automatisch abspielen.
Wie ich das automatische Abspielen einer Wavedatei über Asterisk bewerkstellige weiß ich zwar noch nicht ganz genau habe aber (gedanklich) Ansätze wie das gehen könnte - Stichwort "Interactive-Voice-Response-System" (IVR - was ich dazu nutzen möchte eine einzige Audio auszugeben).

Nochmals danke für die Hilfe.
 
Leider habe ich nun das Problem das beim Benutzen des originate Befehls innerhalb des remote Asterisk-Befehls also "# /bin/sh
asterisk -rx "originate Local/[email protected] extension SIP/2000"" - also innerhalb eines Shell Skripts folgende Meldung kommt:

Oct 20 10:07:38] NOTICE[1836]: chan_local.c:538 local_call: No such extension/context [email protected] while calling Local channel
[Oct 20 10:07:38] NOTICE[1836]: channel.c:4073 __ast_request_and_dial: Unable to call channel Local/[email protected]
-- Remote UNIX connection disconnected
> doing dnsmgr_lookup for 'tel.t-online.de'
> ast_get_srv: SRV lookup for '_sip._UDP.tel.t-online.de' mapped to host tas001.voip.t-ipnet.de, port 5060
 
Für einen solchen local-Channel muss es einen Context [tel.t-online.de] in der extensions.conf geben, so wie ich Dir das oben im Beispiel mit [abgehend] beschrieben hatte.

Und gewöhn Dir bitte an, Code-Tags zu verwenden wenn Du logs oder irgendwas in der Art postest.
 

Statistik des Forums

Themen
246,780
Beiträge
2,257,374
Mitglieder
374,825
Neuestes Mitglied
Waldi2000
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.