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

[SOLVED] Asterisk soll Anruf annehmen und Freizeichen anbieten

Dieses Thema im Forum "Asterisk Allgemein" wurde erstellt von FunkyFish, 17 Sep. 2006.

  1. FunkyFish

    FunkyFish Neuer User

    Registriert seit:
    7 Sep. 2006
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 FunkyFish, 17 Sep. 2006
    Zuletzt bearbeitet: 17 Sep. 2006
    Hallo zusammen,

    nach einigen Tagen Konfiguration usw. läuft mein Asterisk jetzt soweit.
    SIP-Geräte können sich anmelden und nach außen telefonieren. Ankommend funktionierts auch soweit.

    Per chan_capi_cm 0.6.5 ist eine Telefonanlage angebunden, bzw. der Asterisk an einer Tel-Anlage. MSN des Asterisk ist 28.
    Nun möchte ich, dass Endgeräte der Tel-Anlage mittels **28 am Asterisk anrufen können, ein Freizeichen erhalten und wählen dürfen.
    Nach dem Wählen soll Asterisk diese Nummer per SIP anrufen. Falls es nötig ist, damit der Asterisk erkennt, wann die Nummer zu ende ist, könnte die Nr auch mit # enden, oder so...

    Ich hab zuerst versucht die komplette Nummer auf einmal zu wählen also **28<vorwahl><rufnummer>, aber entweder die Telefonanlage oder Asterisk löschen alles nach der MSN (vermutlich die Tel-Anlage). Also muss der Umweg her.

    Weiß jemand wie ich sowas realisieren könnte... Ich hab auch nicht wirklich Ahnung wonach ich suchen soll, vielleicht gibts dazu ja auch schon irgendwo ein passendes Howto

    Gruß
    -Sascha-
     
  2. FunkyFish

    FunkyFish Neuer User

    Registriert seit:
    7 Sep. 2006
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ok, über die c't 13/05 bin ich auf DISA gestoßen...
    Damit und über Set(Timeout(digit)=3) + Set(Timeout(response)=15) habe ich mein Freizeichen bekommen und springe in den VoIP Kontext

    Nun hab ich aber noch ein Problem, irgendwie funktioniert das SetCallerID beim springen über DISA nicht. Zumindest bekomme ich vom tel.t-online.de ein SIP response 400 "Display Name Restricted". Das hatte ich gestern schonmal und konnte mit SetCallerID behoben werden. Die Ausgaben auf der CLI:

    via ISDN rein und SIP raus:
    Code:
        -- Executing Answer("CAPI/ISDN1/28-f", "") in new stack
        -- Executing Set("CAPI/ISDN1/28-f", "TIMEOUT(digit)=3") in new stack
        -- Digit timeout set to 3
        -- Executing Set("CAPI/ISDN1/28-f", "TIMEOUT(response)=15") in new stack
        -- Response timeout set to 15
        -- Executing DISA("CAPI/ISDN1/28-f", "no-password|tonline_out") in new stack
        -- Executing SetCallerID("CAPI/ISDN1/28-f", "0322231xxxxx") in new stack
        -- Executing Set("CAPI/ISDN1/28-f", "CALLERID(number)=032223155666") in new stack
        -- Executing Set("CAPI/ISDN1/28-f", "CALLERID(name)=0322231xxxxx") in new stack
        -- Executing NoOp("CAPI/ISDN1/28-f", "Nummer: <gewählte tel-nr>") in new stack
        -- Executing Dial("CAPI/ISDN1/28-f", "SIP<gewählte tel-nr>@0322231xxxxx|45|r") in new stack
        -- Called <gewählte tel-nr>@0322231xxxxx
        -- Got SIP response 400 "Display Name Restricted" back from 217.0.132.118
        -- SIP/0322231xxxxx-081a1c60 is circuit-busy
      == Everyone is busy/congested at this time (1:0/1/0)
    
    Über SIP-Telefon am Asterisk angemeldet und gewählt:
    Code:
        -- Registered SIP '32' at 10.0.0.22 port 5061 expires 3600
        -- Executing SetCallerID("SIP/32-0819fc48", "0322231xxxxx") in new stack
        -- Executing Set("SIP/32-0819fc48", "CALLERID(number)=0322231xxxxx") in new stack
        -- Executing Set("SIP/32-0819fc48", "CALLERID(name)=0322231xxxxx") in new stack
        -- Executing NoOp("SIP/32-0819fc48", "Nummer: <gewählte-nr>") in new stack
        -- Executing Dial("SIP/32-0819fc48", "SIP/<gewählte-nr>@0322231xxxxx|45|r") in new stack
        -- Called <gewählte-nr>@0322231xxxxx
        -- SIP/0322231xxxxx-081a5980 is making progress passing it to SIP/32-0819fc48
        -- SIP/0322231xxxxx-081a5980 is ringing
    
    Vermutlich wird die CallerId im falschen Kontext/Channel gesetzt, kann das sein? Wie setze ich die im Richtigen?

    Gruß
    -Sascha-
     
  3. FunkyFish

    FunkyFish Neuer User

    Registriert seit:
    7 Sep. 2006
    Beiträge:
    11
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hatte recht mit der Vermutung:

    http://www.voip-info.org/wiki/view/Asterisk+cmd+SetCallerPres
    Das hat geholfen, vorallem hier:
    Code:
    For me in the end SetCallerPres(allowed) did the trick.
    
      exten => <msn>,n,SetCallerPres(allowed)
    
    If an ISDN (BRI) call arrives with the flag CallerPres() set to prohib, you can change the CALLERID(num) or CALLERID(name) with the corresponding set function and the CDRs look good, but the sip channel still has something like sip:Unknown <at> 192.168.161.18 in the from field. So the Phone/Softphone only reports about Unknown number and Unknown name. 
    Gruß
    -Sascha-