.titleBar { margin-bottom: 5px!important; }

[Problem] Anrufweiterschaltung ohne Ton / wird nicht ausgeführt

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von xrated, 27 Okt. 2012.

  1. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #1 xrated, 27 Okt. 2012
    Zuletzt von einem Moderator bearbeitet: 5 Nov. 2012
    rentier-s: abgetrennt von http://www.ip-phone-forum.de/showthread.php?t=252533

    Wenn ich ein eingehendes Gespräch aufs Handy weiterleiten möchte weil an der internen Extension niemand rangeht, brauche ich dann auch eine Bridge?

    Ich habs einfach probiert im Dialplan mit:
    Code:
    exten => 0xx92x98780,n,Dial(SIP/10&SIP/12,20,tT) ; ring on 2 extensions
    exten => 0xx92x98780,n,Dial(SIP/01xx258xx71@arcor_outx98780)
    
    Das Handy klingelt zwar dann aber das Gespräch wird nicht verbunden, man hat keinen Ton auf beiden Seiten.
     
  2. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    Das hat zwar jetzt nichts mit dem Thema zu tun, aber dein Dialplan sieht schon richtig aus. Zuerst klingeln die ersten zwei Telefone gleichzeitig 20 Sekunden lang und dann wird dein Handy über arcor angerufen. Bridge brauchst du da nicht. Das müsste so klappen. Keine Ahnung warum da kein Ton zustande kommt. Das müsste eine andere Ursache haben.
     
  3. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Jemand meinte man bräuchte dafür a) einen eigenen channel bzw. trunk und b) NAT

    Habe aber beides probiert und brachte auch nichts. Wobei ich auch nur 2 Sip Accounts bei Arcor hab.
     
  4. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    Wenn ich dich richtig verstanden habe, hast du auf dem Asterisk ein eingehendes Gespräch. Er landet doch zunächst auf der Extension 0xx92x98780. Dabei klingeln zwei Telefone (SIP/10 und SIP/12). Wenn innnerhalb von 20 Sekunden keiner ran geht, dann geht der Anruf über arcor an 01xx258xx71 raus.
    Das müsste funktionieren. Das sieht alles richtig aus. Versuch das mal über einen anderen Provider als arcor. Verrate paar Details mehr (wo läuft der Asterisk, sip.conf, extensions.conf usw.)
     
  5. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    das ist korrekt

    Ich hätte nur noch ein Konto bei sipgate. Aber mit dem Freeaccount wird man nicht viel anstellen können.
    Was mir aber gerade einfällt, für NAT hatte ich die Ports am Router nicht geöffnet. Könnte es sein das man NAT braucht dafür?

    Also in der sip.conf habe ich 2 Nummern von Arcor als Trunk und 3 Extensions (alle im LAN). Den Port habe ich auf 8060 geändert.

    Asterisk ist Version 1.6.2

    Dialplan steht hier (noch ohne Forward): http://www.ip-phone-forum.de/showthread.php?t=253696&p=1866731&viewfull=1#post1866731
     
  6. PsychoMantis

    PsychoMantis Aktives Mitglied

    Registriert seit:
    18 Dez. 2005
    Beiträge:
    2,486
    Zustimmungen:
    1
    Punkte für Erfolge:
    38
    Beruf:
    Schüler
    Ort:
    Ingolstadt
    Wo steht dein Asterisk? Auf welchem Server läuft er? Hat er eine öffentliche IP (aus dem Internet erreichbar)? Poste die sip.conf, poste die jetzige extensions.conf (di e im Link scheint nicht die gleiche zu sein).
     
  7. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #7 xrated, 28 Okt. 2012
    Zuletzt bearbeitet: 28 Okt. 2012
    im LAN

    Debian

    dynamische öffentliche IP. Erreichbar ist der SIP Port aus dem Internet allerdings nicht, deswegen die Frage ob ein extra NAT Setup überhaupt notwendig ist.
    Auf dem Router sind die SIP Ports derzeit nicht forgewardet weil man das ja nicht braucht wenn alle Telefone im LAN sind.

    Bei extensions.conf musst du dir nur die eine Zeile von oben dazu denken

    sip.conf
    Code:
    
    [general]
    language=de ;for voiceprompts
    context=default                ; Default context for incoming calls
                                    ; 'username' field from the authentication line
                                    ; instead of the From: field.
    allowoverlap=no                 ; Disable overlap dialing support. (Default is yes)
    udpbindaddr=0.0.0.0             ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
                                    ; Optionally add a port number, 192.168.1.1:5062 (default is port 5060)
    
    alwaysauthreject=yes		;send always same error message, to avoid successfull scanning from hackers
    
    registertimeout=70
    
    port=8060
    
    srvlookup=no			;arcor needs no?
    
    disallow=all
    allow=g729
    allow=alaw
    allow=ulaw
    allow=gsm
    
    localnet=192.168.2.0/24
    
    directmedia=no		;same as canreinvite, force relaying
    qualify=yes		;check if client is responsive, default no
    allowguest=no
    
    [arcor_in]
    ;context for incoming calls, this is needed and only once, so all calls are sorted in the correct context
    ;important: this context has to be before all dial out contexts
    type=peer
    fromdomain=0x192.sip.arcor.de
    host=0x192.sip.arcor.de
    context=incoming-arcor
    
    [arcor_outx98780]
    ;context for dialing out
    type=peer
    username=0x192x98780
    fromuser=0x192x98780
    authuser=0x192x98780
    host=0x192.sip.arcor.de
    fromdomain=0x192.sip.arcor.de
    secret=xxx
    insecure=invite ;trust address without authentication
    ;insecure=invite,port ; equals to old very, port is to ignore port number
    ;context=incoming-arcor ;use only if no separate inbound trunk exists
    deny=0.0.0.0/0.0.0.0
    permit=xx.79.152.249/255.255.255.255
    
    [arcor_outx099]
    ;context for dialing out
    type=peer
    username=0x192x099
    fromuser=0x192x099
    authuser=0x192x099
    host=0x192.sip.arcor.de
    fromdomain=0x192.sip.arcor.de
    secret=xxx
    insecure=invite ; dont require authentication
    ;insecure=invite,port ; equals to old very, port is to ignore port number
    ;context=incoming-arcor ;use only if no separate inbound trunk exists
    deny=0.0.0.0/0.0.0.0
    permit=xx.79.152.249/255.255.255.255
    
    [10]
    type=friend ; normaly peer should be used but geotek uses friend
    host=dynamic ;allow all ip adresses 
    ;host=192.168.2.4
    secret=xxx
    context=phonesx98780 ;dialplan in extensions.conf
    callerid=Thomas <10>
    useragent=CSCO/7 ;when provider is blocking the default Asterisk PBX string, its just a vendor string
    deny=0.0.0.0/0.0.0.0
    permit=192.168.2.0/255.255.255.0 ;allow login only from this network
    
    [11]
    type=friend
    host=dynamic
    ;host=192.168.2.4
    secret=xxx
    context=phonesx099
    callerid=Monika <11>
    useragent=CSCO/7
    deny=0.0.0.0/0.0.0.0
    permit=192.168.2.0/255.255.255.0
    
    [12]
    type=friend
    host=dynamic
    secret=xxx
    context=phonesx98780
    callerid=Thomas Mobil <12>
    useragent=CSCO/7
    deny=0.0.0.0/0.0.0.0
    permit=192.168.2.0/255.255.255.0
    
     
  8. rmh

    rmh Aktives Mitglied

    Registriert seit:
    6 Juli 2008
    Beiträge:
    1,836
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    Beruf:
    R&D
    Ort:
    BY
    Sobald du externe Peers einbindest (z.B. SIP-Provider) wirst du darüber noch mal nachdenken müssen.
     
  9. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #9 xrated, 2 Nov. 2012
    Zuletzt bearbeitet: 2 Nov. 2012
    Mal von NAT abgesehen, dass habe ich noch nicht weiter getestet.

    Aber ist dieses Beispiel überhaupt lauffähig?
    http://das-asterisk-buch.de/1.6/section-callforwarding.html#einfaches-callforwarding

    Ich habs fast 1:1 so und ${DB(CF/${EXTEN})}) wird bei mir als leer angezeigt in der CLI.

    In der Asterisk DB steht das in der Art drin (10 wäre die interne Extension):
    /CF/10 : forwardnummer

    Müsste da nicht die volle Rufnummer rein?
     
  10. rentier-s

    rentier-s Guest

    Wenn Du ${DB(CF/${EXTEN})}) verwenden willst und ${EXTEN} 08192xx1 ist, musst Du in der AstDB natürlich einen Eintrag /CF/08192xx1 haben.

    Zu dem fehlenden Ton, rmh hat Dich bereits darauf hingewiesen, dass Du für die Anbindung eines SIP-Providers Portforwarding brauchen wirst. Außerdem fehlen Dir externhost/externrefresh bzw. externip.

    Bist Du Dir mit dem port=8060 sicher, oder meintest Du bindport?
     
  11. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Also den incoming port habe ich eben mit port=8060 entsprechend abgeändert.

    Ist das dann überhaupt möglich wenn man z.B. mit dem Telefon 95forwardnr wählt, dass man dann im Dialplan entsprechend einen Forwarder auf die richtige Nummer (wenn man mehrere Nummern hat) setzen kann? Weil CALLERID(num) ist ja nur die interne Extension.

    So macht das ja nicht recht viel Sinn:
    Code:
    [extCFenable]
    exten => _95X.,1,Answer()
    exten => _95X.,n,Set(DB(CF/${CALLERID(num)})=${EXTEN:2})
    exten => _95X.,n,Playback(/usr/local/share/asterisk/sounds/call-forwarding)
    exten => _95X.,n,Playback(/usr/local/share/asterisk/sounds/for)
    exten => _95X.,n,SayDigits(${EXTEN:2})
    exten => _95X.,n,Playback(/usr/local/share/asterisk/sounds/activated)
    exten => _95X.,n,Hangup
    
    Jedes Telefon sollte nur da was setzen, wessen Trunk auch benutzt wird.
     
  12. rentier-s

    rentier-s Guest

    Das Beispiel geht von einem Aufbau mit Durchwahlen aus, da ist die gewählte Nummer gleich der Nebenstelle. Für Deinen Zweck musst Du ein Mapping Rufnummer<->Nebenstelle einbauen, entweder beim setzen der Umleitung oder beim Auswerten.

     
  13. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #13 xrated, 8 Nov. 2012
    Zuletzt bearbeitet: 8 Nov. 2012
    ok, danke mit dem bindport. Ich hatte ja port=8060 und es ging trotzdem, vielleicht ist da ein Failback auf 5060 mit drin.

    Wegen dem Mapping wüsste ich jetzt nur mit einer Variable in Globals (aber wie verbindet man das mit der Nebenstelle) oder gibts da noch andere Möglichkeiten?
    Wenn das zu kompliziert wird, kann ichs auch rauslassen und nur via Web (asterisk -rx) steuern.
     
  14. rentier-s

    rentier-s Guest

    Du hast ja für ankommende Gespräche sowie die jeweilige Nebenstelle im Dial definiert.
    Dementsprechend darfst Du nicht
    exten => 08192xx1,n,GotoIf($[foo${DB(CF/${EXTEN})} != foo]?normal:forward)
    verwenden, sondern musst ${EXTEN} durch die jeweilige Nebenstelle ersetzen.

    Zum Beispiel
    exten => 08192xx1,n,GotoIf($[foo${DB(CF/123)} != foo]?normal:forward)
    exten => 08192xx1,n(normal),Dial(SIP/123)

    Wenn es mehr Nebenstellen werden, empfielt sich das Mapping sowieso über eine Datenbank (AstDB oder eine externe). Dann brauchst Du die Zuordnung nur an einer Stelle pflegen und kannst sie für ankommend, abgehend und eben Funktionen wie AWS verwenden.
    Der Idealfall ist es natürlich, als Nebenstellennummern grundsätzlich die letzten zB. 2 Stellen der MSNs zu verwenden. Dann lässt sich alles wie bei Anlagenanschlüssen mit Durchwahl einfach 1:1 umsetzen.
     
  15. xrated

    xrated Mitglied

    Registriert seit:
    2 Juli 2012
    Beiträge:
    710
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #15 xrated, 10 Nov. 2012
    Zuletzt bearbeitet: 10 Nov. 2012
    Code:
    exten => 0x1921xx80,n,Set(PHONEEXT=${DB(CF/${EXTEN})})
    exten => 0x1921xx80,n,GotoIf(${PHONEEXT}=0?normal:forward)
    exten => 0x1921xx80,n(normal),Dial(SIP/10,30,tTM(throttleon)) 
    exten => 0x1921xx80,n(forward),Set(FWDNR=${DB(CF/${PHONEEXT})})
    exten => 0x1921xx80,n(forward),NoOp(Call for ${EXTEN} on EXT ${PHONEEXT} will be forwarded to ${FWDNR})
    exten => 0x1921xx80,n(forward),Dial(SIP/${FWDNR}@arcor_out1xx80,30,tTM(throttleon))
    
    würde das so gehen und wenn die Zeile normal ausgeführt wird, würde dann mit forward weitergemacht werden wenn keiner abhebt oder wird das ausgelassen?

    Edit: Ne das obere macht ja auch wieder keinen Sinn, wenn ein User über Telefon bzw. Dialplan den Forwarder ein/ausschalten möchte dann bekomme ich ja nicht raus wie dem seine volle Nummer ist, sondern nur seine interne Extension über CALLERID(num).
    Und die volle Nummer fest im Dialplan eintragen, bringts auch nicht.
    Das sinnvollste und nicht zu komplizierteste wird wohl sein wenn man über Web die Zuordnung Rufnummer zu Forwardnr einträgt.