Warteschlangenmusik als Early Media (SIP 183 Session Progress)

despo_1983

Neuer User
Mitglied seit
24 Dez 2009
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe eine SN4638 an einen Asterisk (Gemeinschaft 3.1) angeschlossen und funktioniert soweit bestens.

Ich habe noch ein kleines Problem mit einer Warteschlange, dass die Musik einfach nicht auf der Gegenseite zu hören ist. Ruft man die Warteschlange an steht im Handy/Telefon immer noch Rufaufbau und man hört nichts.

So sieht das auf dem Asterisk an der Stelle aus:
Code:
<------------>
Audio is at 192.168.2.2 port 14352
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP

<--- Transmitting (no NAT) to 192.168.2.3:5060 --->
SIP/2.0 183 Session Progress
v: SIP/2.0/UDP 192.168.2.3:5060;branch=z9hG4bKf1c184125cb386b56;received=192.168.2.3
f: <sip:[email protected]:5060>;tag=97770f7da1
t: <sip:[email protected]:5060>;tag=as5cd8c5d9
i: fd4f04afc6b5be35
CSeq: 22102 INVITE
Server: Asterisk Gemeinschaft
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO
k: replaces, timer
m: <sip:[email protected]>
c: application/sdp
l: 245

v=0
o=root 1135484607 1135484607 IN IP4 192.168.2.2
s=Asterisk PBX 1.6.2.9-2+squeeze3
c=IN IP4 192.168.2.2
t=0 0
m=audio 14352 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
a=sendrecv

<------------>

Was muss ich denn spezielles am SN einstellen, dass ich die Musik auf der Gegenseite höre?

Meine bisherige SN Konfiguration:
Code:
#----------------------------------------------------------------#
#                                                                #
# SN4638/5BIS                                                    #
# R5.7 2011-01-17 H323 SIP BRI                                   #
# 2011-07-22T23:23:28                                            #
# SN/00A0BA0512FF                                                #
# Generated configuration file                                   #
#                                                                #
#----------------------------------------------------------------#

cli version 3.20
administrator administrator password ** encryed
clock local default-offset +02:00
timer DaylightSavingsOn 02:00 mar 25th next sunday every year "clock local offset +02:00"
timer DaylightSavingsOff 03:00 oct 25th next sunday every year "clock local offset +01:00"
timer SaveConfigDaylightSavingsOn 03:01 mar 25th next sunday every year "copy running-config startup-config"
timer SaveConfigDaylightSavingsOff 02:01 oct 25th next sunday every year "copy running-config startup-config"
dns-client server 192.168.0.1
dns-relay
webserver port 80 language en
sntp-client
sntp-client server primary 192.168.2.2 port 123 version 4
sntp-client server secondary 192.168.0.1 port 123 version 4
system hostname SN4638

system

  ic voice 0
    low-bitrate-codec g729

system
  clock-source 1 bri 0 0
  clock-source 2 bri 0 1
  clock-source 3 bri 0 2
  clock-source 4 bri 0 3
  clock-source 5 bri 0 4

profile napt NAPT_WAN

profile ppp default

profile tone-set default

profile voip default
  codec 1 g711alaw64k rx-length 20 tx-length 20
  codec 2 g711ulaw64k rx-length 20 tx-length 20
  fax transmission 1 relay t38-udp
  fax transmission 2 bypass g711alaw64k
  modem transmission 1 bypass g711alaw64k

profile pstn default

profile sip default
  no autonomous-transitioning

profile aaa default
  method 1 local
  method 2 none

context ip router

  interface WAN
    ipaddress dhcp
    use profile napt NAPT_WAN
    tcp adjust-mss rx mtu
    tcp adjust-mss tx mtu

  interface IF_IP_LAN
    ipaddress 192.168.2.3 255.255.255.0

context ip router
  route 0.0.0.0 0.0.0.0 192.168.2.1 1

context cs switch
  digit-collection timeout 2
  national-prefix 0
  international-prefix 00

  routing-table called-e164 RT_FROM_PSTN
    route xxxx.%T dest-interface IF_SIP_ASTERISK
    route xxxxx.+T dest-interface IF_NT_04
    route default dest-interface IF_SIP_ASTERISK

  interface isdn IF_TE_00
    route call dest-table RT_FROM_PSTN

  interface isdn IF_TE_01
    route call dest-table RT_FROM_PSTN

  interface isdn IF_TE_02
    route call dest-table RT_FROM_PSTN

  interface isdn IF_TE_03
    route call dest-table RT_FROM_PSTN

  interface isdn IF_NT_04
    route call dest-service SER_HUNT_PSTN

  interface sip IF_SIP_ASTERISK
    bind context sip-gateway GW_ASTERISK
    route call dest-service SER_HUNT_PSTN
    remote 192.168.2.2 5060
    early-connect
    early-disconnect

  interface sip IF_SIP_SN4114
    bind context sip-gateway GW_SN4114
    route call dest-service SER_HUNT_PSTN
    remote 192.168.2.4 5061
    early-connect
    early-disconnect

  service hunt-group SER_HUNT_PSTN
    cyclic
    timeout 6
    drop-cause normal-unspecified
    drop-cause no-circuit-channel-available
    drop-cause network-out-of-order
    drop-cause temporary-failure
    drop-cause switching-equipment-congestion
    drop-cause access-info-discarded
    drop-cause circuit-channel-not-available
    drop-cause resources-unavailable
    route call 1 dest-interface IF_TE_00
    route call 2 dest-interface IF_TE_01
    route call 3 dest-interface IF_TE_02

context cs switch
  no shutdown

context sip-gateway GW_ASTERISK

  interface IF_GW_LAN
    bind interface IF_IP_LAN context router port 5060

context sip-gateway GW_ASTERISK
  no shutdown

context sip-gateway GW_SN4114

  interface IF_GW_LAN
    bind interface IF_IP_LAN context router port 5061

context sip-gateway GW_SN4114
  no shutdown

port ethernet 0 0
  medium auto
  encapsulation ip
  bind interface WAN router
  no shutdown

port ethernet 0 1
  medium auto
  encapsulation ip
  bind interface IF_IP_LAN router
  no shutdown

port bri 0 0
  clock auto
  encapsulation q921

  q921
    protocol pp
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side user
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_TE_00 switch

port bri 0 0
  no shutdown

port bri 0 1
  clock auto
  encapsulation q921

  q921
    protocol pp
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side user
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_TE_01 switch

port bri 0 1
  no shutdown

port bri 0 2
  clock auto
  encapsulation q921

  q921
    protocol pp
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side user
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_TE_02 switch

port bri 0 2
  no shutdown

port bri 0 3
  clock auto
  encapsulation q921

  q921
    protocol pp
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side user
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_TE_03 switch

port bri 0 3
  shutdown

port bri 0 4
  clock auto
  power-feed
  encapsulation q921

  q921
    protocol pp
    uni-side auto
    encapsulation q931

    q931
      protocol dss1
      uni-side net
      bchan-number-order ascending
      encapsulation cc-isdn
      bind interface IF_NT_04 switch

port bri 0 4
  no shutdown

Grüße
 
Gibt es diese Info auch auf der neuen Seite? Der Link ist leider tot.
 
Hallo,

Soweit ich weiß wird das Wiki umgezogen, das neue findet sich hier:
https://github.com/amooma/GemeinschaftPBX/wiki/

Da ist das aber noch nicht drin. Glaube das soll bis Anfang kommenden Jahres geschehen. Wenn du die Infos früher brauchst, schreib AMOOMA.

Aber hier, just for you:
http://web.archive.org/web/20101026095001/http://amooma.de/gemeinschaft/wiki_pages/13

Das ist aber ne Anleitung für Gemeinschaft. Wenn du Asterisk benutzt, musst du das logisch anpassen. Also z.B. nicht Anrufer direkt in die Queue leiten, sondern den Anruf vorher mit Answer() beantworten.

HTH,
aktivix
 
Aber direkt mti answer will man ja nicht, die sollen ja erst zahlen, wenn sie auch mit jemandem quatschen :)
 
Jo, "will man nicht". Klar. Wollte ich auch nicht.

Da aber weder Progress() noch Ringing() [die Alternativen] funktioniert haben, habe ich Answer() genommen.

-------------------------------------------------------------------------------------------------

Und hier bisschen ausführlicher:

Earlymedia funktioniert so, daß der Endpunkt mitteilt, daß das Ziel
erreicht wurde (CallProgress). Dadurch wird der Switch des eigenen
Anbieters und danach der Switch des abgehenden Anbieters "motiviert",
Audio zu öffnen.

Wenn ich also den Anruf einfach stur in die Queue haue, kommt es zu
keinem Progress, ergo kein Earlymedia.

Die Lösung wäre zwar ein Answer, das ist okay, aber hier eher ein
Mittel, in dessen Nebeneffekt Earlymedia geöffnet wird. Asterisk kennt
der Funktionen zwei, um das Thema anzugehen:

1.) progress()

Sendet ein einfaches Callprogress, worauf Audio rennt. Nachteil: Je
nachdem, woher der Anruf kommt, reicht das nicht aus, um daraus eine
stabile Verbindung zu machen. Es kann also sein, daß nach einigen
Sekunden in der Queue der Anruf abreißt. Daher ist die Methode hier
wenig geschickt.

2.) ringing()

Hierdurch wird neben dem Progress signalisiert, daß der Anruf ein Ziel
erreicht hat und es klingelt. Earlymedia funktioniert damit auf jeden
Fall und es gibt kein Timingproblem. Unschöner Nebeneffekt ist, daß je
nach Anrufquelle ein einzelnes ganz kurzes Freizeichen zu hören ist -
dafür ist es stabil.

Noch ein paar Worte zum Thema "Grauzone":

Earlymedia wird längst nicht von jedem Anbieter unterstützt. Es kann
also sein, daß Anrufer in diesem Fall nichts hören, bis jemand das
Gespräch dann tatsächlich abnimmt. Wenn das passiert, geht es nur mit
"answer()".

Es ist ja im Gespräch, daß Warteschleifen kostenfrei sein sollen, bis
jemand den Anruf annimmt (ein Mensch, keine Maschine). Das betrifft
aber "nur" verschiedene 0180x-Gassen und die 0700er und die 0900er.
Die geografischen Rufnummern sind sicher außen vor und dürfen auch
zukünftig kostenpflichtig sein für den Anrufer.
 
Danke für den ausfürlichen Post, Sipgate unterstützt es nicht, blueSip ja.
 
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.