Dåliga säljare ger dålig reklam till de bra

Luren!Blev idag uppringd av ett för mig okänt nummer. Jag kände spontant att jag inte kunde svara på det samtalet, eftersom det kan vara någon jag inte blir av med. Och på jobbet så är inte det är en bra combo. Så jag slog upp numret på google först, och ganska snabbt insåg jag att det här var en väldigt jobbig säljare. Ord som ”gubbjävel”, ”blir inte av med”, ”kommer ringa tills kunden vill lyssna” dök upp både här och var på nätet.

Jag har inte dom här problemen på hemmatelefonen. Min växel är så pass smart att den kan filtrera bort samtal jag inte vill ha, genom att koppla dom direkt till telefonsvarare, ge dom ett meddelande som säger att de inte kommer att få sälja något hos mig, eller helt sonika lägger på luren.

Men nu har det här så klart börjat smitta av sig på mobiltelefonen också. Säkerligen beror det på att det finns på Eniro. Jag började därför fundera på hur jag skulle göra för att inte behöva ta de här samtalen men ändå, om det är  något viktigt, få reda på vem som ringt. Slutligen hade jag en perfekt lösning färdig. Nej – inte NIX. Jag kommer att skaffa det också, för att sålla bort de säljare som går att sålla bort. Men sedan finns det ju fortfarande en del ”instanser” som inte respekterar NIX eller som råkat missa NIX helt.

Hemtelefonen:

  • Avvisa samtliga hemliga nummer med ett meddelande
  • Filtrera på nummer. Vissa kända försäljningsnummer kopplas till ett ”Nejtack”, med möjlighet att lämna meddelande. Andra kända nummer kopplas bort med ”upptaget”.

Mobilen

  • Koppla samtal jag inte hinner ta till hemtelefonen. Hemtelefonen löser resten. Seriösa samtal går fram som vanligt.
  • Med nummer jag inte känner igen, avvisa dom med ett klick. Mobilen kopplar sedan om till hemtelefonen – som löser resten. Hemliga nummer lär avvisas utan nåd.

Om de avvisade/omkopplade telefonnumren från mobilen sedan visar sig vara ett säljsamtal kommer dessa alltså att självsaneras. Säljaren kommer aldrig få en möjlighet att prata med mig och jag kommer aldrig behöva tvingas ta mig igenom ett långt samtal från en säljare som inte vill lägga på luren.

Asterisk – Megaphone – Fax

Det har antagligen inte alls med saken att göra, men på sistone har jag i mitt domännamnshandlande stött på en del verksamheter som fortfarande förlitar sig på att folk skickar in sina ansökningar via fax. Det kan handla om att flytta till ny registrar, eller något annat byråkratiskt dito. Det fick mig också att fundera på om man inte skulle ta och skaffa sig en fax igen också. Men vad har man att välja på? Å ena sidan skulle man kunna köpa ett stort åbäke som man inte vet vart man skall ha, å andra sidan skulle man kunna virtualisera faxen nästan helt och hållet. Men skulle mitt telefon-nät klara av det? Det är ju ganska onödigt att köpa en stor fax bara för att inse att den inte kommer att fungera ihop med IP-telefonin.

Jag bestämde mig för att börja i liten skala: Virtualisering. Detta hoppades jag på skulle hjälpa mig med första utredningen, om IP-telefonen skulle klara av att hantera dataströmmen. Jag stötte naturligtvis på problem direkt, då jag kör Asterisk som växel framför Megaphone-nätet. Version 1.4 var för gammal. Efter mycket krånglande med en virtuell fax (Faxback som verkar vara bland få program som faktiskt gör vad jag önskar), så insåg jag att Asterisk 1.4 bara stödjer T.38 Passthrough. Dvs, den stödjer fax, men ändå inte. Jag läste mig även fram till att Asterisk 10 skulle ha fullt inbyggt faxstöd. Problemet med detta var att man då även sannolikt skulle behöva installera faxtillägg till växeln, samtidigt som man var tvungen att uppgradera till version 10. Jag var dock inte jättesugen på att krångla med det, så jag tänkte istället att min telefoni-Vood 322 skulle kunna klara detta bättre.

Väl igång med Vooden insåg jag ännu en gång att det inte skulle fungera. Vooden hade förvisso stöd för T.38 på en annan nivå än Asterisk 1.4 hade, men autentiseringen mot Megaphone var i princip helt omöjlig att få igång. Av någon anledning förstod Megaphone inte längre vad jag hade för användarnamn och lösenord i boxen. Jag fattade inte riktigt varför dock, men faktum var att jag aldrig kunde se något lösenord skickas i autentiseringen när jag läste av nätverkstrafiken. Här insåg jag också att det fanns vissa nackdelar med att inte längre vara anställd på Megaphone som tekniker – det fanns ingen direkt möjlighet att analysera trafiken från andra hållet  heller, så jag slängde iväg ett mail för att se om det fanns någon möjlighet att kunna få en analys av läget. Instruktionerna jag fick var att nollställa allt – en inte särskilt bra idé då jag visste att allt egentligen fungerade.

Sagt och gjort – det fanns bara en utväg kvar: Den utväg jag från början ville undvika på grund av tiden det skulle ta att få igång. Jag installerade alltså Asterisk 10 och klonade samtliga gamla inställningar från version 1.4. Slutligen kickade faxfunktionen igång, då ihop med ett gammalt faxmodem jag åter hade hittat i en kartong med gamla prylar!

Asterisk med DTMF-styrd vidarekoppling

Jag har sedan länge funderat på om det med hjälp av telefonen skulle gå att vidarekoppla inkommande samtal till något annat telefonnummer. Jag hade föreställt mig möjligheten att göra detta, i synnerhet om säljare någon dag får för sig att hitta mitt nummer och ringa mig, fastän jag inte vill det. Idag tog jag mig tid att titta på det och plötsligt fick jag det att fungera.

Som vanligt hade jag stor nytta av http://www.voip-info.org/

Aktiveringen av ”blind transfer”, som det heter, sker i två steg. Först redigerar man features.conf:

Kod:
[featuremap]
;blindxfer => #1                ; Blind transfer  (default is #)
blindxfer => *2   ; Flytta koden till *2

Därefter skall det räcka med att redigera exten.conf. Transferkoden lägger jag efter att Asterisk har ringt upp mina extensions. Det viktiga här är att även ha med parametern ”t” under parametrarna som finns på Dial-raden. Observera även ordningen på raderna. Det är viktigt att inte transfer-kommandot tar över det inkommande samtalet, eftersom – om man har sådan installerad förstås – röstbrevlådan då kommer bli lidande…

Kod:
exten => s,n,Dial(SIP/tmm&SIP/mobil&SIP/tmm-vood&SIP/megatmm,30,wWkKt)
exten => s,n,Goto(s-${DIALSTATUS},1)            ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,VoiceMail(1001,u)
exten => s,n,Gotoif($${BLINDTRANSFER}=""?500)
exten => s,500,Hangup
exten => s,501,Set(tx=${BLINDTRANSFER:0:7})
exten => s,502,SetCallerID(RET_${EXTEN} <${CALLERIDNUM}>)
exten => s,503,Dial(${tx},,mTt)
exten => s,504,Hangup

Asterisk och Megaphone

OBS: Användning av denna dokumentation sker på egen risk!

Denna text har skapats (filer bifogade) som ett självändamål för att spara in tid och hårbortfall vid eventuella framtida omkonfigurationer av Asterisk, om detta behov någon gång skulle uppstå. Det finns ingen egentlig support i bemärkelsen ”Hej, hur gör man detta? Jag får inte rätt på det!” – allt som egentligen behövs är mycket tålamod och lite engelska kunskaper, eftersom grundhjälpen har inhämtats från http://www.voip-info.org/. Vill du ha riktig hjälp, läs förslagsvis där innan du börjar ställa frågor som saknar svar. Har du några frågar som jag KAN besvara, så gör jag givetvis det.

Om detta inlägg

Informationen i denna text bygger på att man har fler SIP-baserade abonnemang hos telefoni-operatören Megaphone. Hur din konfiguration kommer fungera hos någon annan operatör har jag ingen aning om. Ej heller har jag någon aning om den kommer att fungera hos dig om du tar del av den. Det grundläggande upplägget som bör räcka för att få flera telefonnummer (eller ett!) att fungera för både in- och utgående telefoni beskrivs dock, enligt nedan. Det är som tidigare skrivet, ej garanterat att detta fungerar för alla.

Konfigurationen öppnar möjligheten att ta emot ett samtal på flera telefoner, där den som svarar först tar samtalet. Utgående telefoni fungerar också, men skall man kunna ringa ut från två olika nummer måste också Asterisk anpassas efter möjligheterna, med lite fulkod. Jag kallar detta för ”fusktrunk” även om benämningen troligen är helt felaktig (konfigurationen är inkluderad enligt nedan, vilket innebär att om man med denna konfiguration använder en extra nolla i början av riktnumret så används linje 2 för utgående samtal).

Operatörens egna forking-möjligheter rekommenderas starkt, eftersom operatören då tillhandahåller denna tjänst i stället för dig. Detta lär vara stabilare samt ger en del andra fördelar – såsom faktisk support. I Asterisk får du klara dig själv om telefonen plötsligt slutar fungera. Observera även att Asterisk i dessa exempel innehåller specialkonfiguration för andra ändamål också, främst intern röstbrevlåda. Detta kan medföra att allt inte kommer att fungera på önskat sätt för andra som installerat Asterisk då all konfigurering utöver dessa exempel är individuell och nedanstående har av oförklarlig anledning skrivits på engelska.

Övriga frågor och svar följer under dessa konfigurationer.

sip.conf

Kod:
[general]
  context=default                                                ; Default context for incoming calls
  allowoverlap=no                                                ; Disable overlap dialing support. (Default is yes)
  bindport=5060                                                  ; UDP Port to bind to (SIP standard port is 5060)
  bindaddr=0.0.0.0                             ; IP address to bind to (0.0.0.0 binds to all)
  srvlookup=yes                                                  ; Enable DNS SRV lookups on outbound calls
  realm=asterisk
  domain=my.sip.domain                     ; Set default domain for this host
                                                                        ; If configured, Asterisk will only allow
                                                                        ; INVITE and REFER to non-local domains
                                                                        ; Use "sip show domains" to list local domains
  ;disallow=all                                    ; First disallow all codecs
  allow=ulaw                                     ; Allow codecs in order of preference
  allow=ulaw
  allow=alaw
  allow=g729
  rtptimeout=60                                                  ; Terminate call if 60 seconds of no RTP or RTCP activity
  rtpholdtimeout=300                          ; Terminate call if 300 seconds of no RTP or RTCP activity
   
  ; Be careful with this
  sipdebug = yes                                                 ; Turn on SIP debugging by default, from
  recordhistory=yes                            ; Record SIP history by default 
  dumphistory=yes                             ; Dump SIP history at end of SIP dialogue
   
  ;; SIP Phone 1
  register => username.megaphone.se:password@sip.megaphone.se
   
  ;; SIP Phone 2
  ; /1001 = Connect immediately to extension 1001 and pass by any automated messages...
  ; (this seem to be linked to the extension-config)
  register => username.megaphone.se:password@sip.megaphone.se/1001
   
  localnet=10.0.0.0/255.0.0.0
  localnet=192.168.0.0/255.255.0.0
  nat=yes                                                           ; Global NAT settings  (Affects all peers and users)
  canreinvite=no                                ; Asterisk by default tries to redirect the
   
  [authentication]
  ; Obviously not required (Dual stuff)
  ;;;auth=username.megaphone.se:password@sip.megaphone.se
  ;;;auth=username.megaphone.se:password@sip.megaphone.se
   
  ;;;; USER CONFIGURATION
   
  ; Main extension for home
  [self]
  type=friend
  username=me
  secret=mypassword
  host=dynamic
  context=myextension
  regexten=1001
   
  ; Let the Vood have its own extension if this runs on SIP
  [self-vood]
  type=friend
  username=self-vood
  secret=voodpassword
  host=dynamic
  context=myextension
  regexten=1011
   
  ; Let the Nokia on!
  [selfmobile]
  type=friend
  username=selfmobile
  secret=mobilepassword
  host=dynamic
  context=myextension
  regexten=1010
   
  [user1]
  type=friend
  username=user1
  secret=password1
  host=dynamic
  context=user1
  regexten=2000
   
  [user2]
  type=friend
  username=user2
  secret=password2
  host=dynamic
  context=user2
  regexten=2001
   
   
  ; The PEERS (Megaphone)
  [NUM1]
  type=peer
  username=username.megaphone.se
  fromdomain=sip.megaphone.se
  insecure=very
  qualify=yes
  nat=yes
  secret=password
  host=sip.megaphone.se
  context=default
   
  [NUM2]
  type=peer
  username=username.megaphone.se
  fromdomain=sip.megaphone.se
  insecure=very
  qualify=yes
  nat=yes
  secret=password
  host=sip.megaphone.se
  context=default
  




extensions.conf

Kod:
 
  [general]
  static=yes
  writeprotect=no
  clearglobalvars=no
  priorityjumping=yes
  ;#include "filename.conf"
  [globals]
  CONSOLE=Console/dsp                                                        ; Console interface for demo
  ;TRUNK=Zap/G2                                                                                  ; Trunk interface
   
  ; Never required... (This is dual number!)
  ;;;SIPtrunk=SIP/username.megaphone.se:password@sip.megaphone.se    ; SIP trunk
  ;;;SIPtrunk=SIP/username.megaphone.se:password@sip.megaphone.se    ; SIP trunk
   
  ; Used by everybody! (Incoming connections)
  [default]
  include => allextensions
  exten => s,1,NoOp(${SIP_HEADER})
  exten => s,n,NoOp(${CALLERID})
  exten => s,n,Wait(1)
  exten => s,n,Answer
  ; Play a message!
  exten => s,n,BackGround(welcome)
  ; Wait for a beep for about 2 sec!
  exten => s,n,WaitExten(2)
  ; Play another message (in this case: "redirecting your call")
  exten => s,n,BackGround(calling_dittsamtal)
  ; If no extension set above, dial those number for 30 sec
  exten => s,n,Dial(SIP/self&SIP/selfmobile&SIP/self-vood,30)
  ; Then check status...
  exten => s,n,Goto(s-${DIALSTATUS},1)                                 ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
  ; And send to voicemail for extension 1001 on no answer
  exten => s-NOANSWER,1,VoiceMail(1001,u)
   
  [self]
  include => default
  include => outgoing
   
  [self-vood]
  include => default
  include => allextensions
  include => outgoing
   
  [selfmobile]
  include => default
  include => outgoing
   
  ; Only allow internal calls for user 1
  [user1]
  include => allextensions
  exten => 1000,1,Voicemailmain(1000)
   
  ; Allow the same as "self" for user2
  [user2]
  include => allextensions
  include => outgoing
  exten => 1000,1,Voicemailmain(1000)
  exten => _X.,1,Dial(SIP/${EXTEN}@NUM1,30,r) 
   
  ; All outgoing extensions
  [outgoing]
  ; Allow yourself to dial between your external extensions
  exten => NUM1,1,Dial(SIP/${EXTEN}@NUM2,30,r)
  exten => NUM2,1,Dial(SIP/${EXTEN}@NUM1,30,r)
  ; Anything else goes out through NUM1
  exten => _X.,1,Dial(SIP/${EXTEN}@NUM1,30,r) 
  ; But if any call starts with an extra zero, use NUM2
  ; This makes both numbers available for outbound traffic
  exten => _00X.,1,Dial(SIP/${EXTEN:1}@NUM2,30,r)
  exten => s,n,Goto(s-${DIALSTATUS},1)                                 ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
  exten => s-NOANSWER,n,VoiceMail(${ARG1},u)
   
  ; Internal usage
  [allextensions]
  ; Extension 1000 - Voicemail!
  exten => 1000,1,Voicemailmain(1000)
   
  ; Self extension and the default! Try for 20 sec
  exten => 1001,1,Dial(SIP/self&SIP/self-vood&SIP/selfmobile,20)
  ; Missed calls goes to voicemail
  exten => 1001,2,VoiceMail(1001,u)
   
  ; Others
  exten => 1010,1,Dial(SIP/selfmobile,20)
  exten => 1010,2,VoiceMail(1001,u)
  exten => 1011,1,Dial(SIP/self-vood,20)
  exten => 1011,2,VoiceMail(1001,u)
   
  ; User 1
  exten => 2000,1,Dial(SIP/user1,20)
  exten => 2000,2,VoiceMail(2000,u)
   
  ; User 2
  exten => 2001,1,Dial(SIP/user2,20)
  exten => 2001,2,VoiceMail(2001,u)
   
  ; Invalid extensions goes to voicemail
  exten => i,1,VoiceMail(1001,u)
  




Specialanpassningar

Jag har ju två nummer… men när det ringer in vet jag inte vilket av numren jag söks på!

I de fall då tester har utförts med Asterisk så visas inkommande telefonnummer i stil med

Kod:
To: "0435xxxxxx"



Detta leder givetvis till problem eftersom SIP_HEADER(TO) inte kan användas på det sätt som var tänkt (denna information kan med sökningsfunktioner återfinnas på voip-info, se länk ovan). Så vitt jag förstått det, så är det ”s@xxx” som ställer till det, då numret egentligen skulle visats där istället (i stil med ”0435xxxxx@”), vilket gör att man inte kan identifiera destinationen med sip-headern. Att destinationen omnämns på samma rad spelar heller ingen roll.

Därför skrev jag om några rader i konfigurationsfilerna. Dels så lade jag in följande exten-rad i extensions.conf, efter callerid-raden:

Kod:
exten => s,n,Set(CALLERID(num)=${CALLERID(num)} to 0435xxxxxx)



Detta gör att jag kan se till vilket nummer någon ringer, åtminstone I SIP-klienten (X-lite). Hur det blir i en vanlig nummerpresentatör kan jag faktiskt inte svara på (det är mycket troligt att resultatet dels är för långt och jag misstänker att alla nummerpresentatörer inte klarar av formateringen på numret). Resultatet blir nämligen, exempelvis:

Kod:
0812345677 to 0435123456@127.0.0.1





I sip.conf har jag tidigare angett att mitt andra nummer skall gå direkt till en specifik extension:

Kod:
register => username.megaphone.se:password@sip.megaphone.se/1001



Detta ändrar jag nu på, till:

Kod:
register => username.megaphone.se:password@sip.megaphone.se/1020



Sedan lägger jag upp en ny extension under [allextensions]:

Kod:
exten => 1020,1,Set(CALLERID(num)=${CALLERID(num)} to 0435xxxxxx)
  exten => 1020,n,Dial(SIP/self&SIP/self-vood&SIP/selfmobile,20)



Nu kommer displayen, när det ringer på det andra numret visa upp till exempel:

Kod:
0812345677 to 0435654321@127.0.0.1

OBS: Användning av denna dokumentation sker på egen risk!

Denna text har skapats (filer bifogade) som ett självändamål för att spara in tid och hårbortfall vid eventuella framtida omkonfigurationer av Asterisk, om detta behov någon gång skulle uppstå. Det finns ingen egentlig support i bemärkelsen ”Hej, hur gör man detta? Jag får inte rätt på det!” – allt som egentligen behövs är mycket tålamod och lite engelska kunskaper, eftersom grundhjälpen har inhämtats från http://www.voip-info.org/. Vill du ha riktig hjälp, läs förslagsvis där innan du börjar ställa frågor som saknar svar. Har du några frågar som jag KAN besvara, så gör jag givetvis det.

Om detta inlägg

Informationen i denna text bygger på att man har fler SIP-baserade abonnemang hos telefoni-operatören Megaphone. Hur din konfiguration kommer fungera hos någon annan operatör har jag ingen aning om. Ej heller har jag någon aning om den kommer att fungera hos dig om du tar del av den. Det grundläggande upplägget som bör räcka för att få flera telefonnummer (eller ett!) att fungera för både in- och utgående telefoni beskrivs dock, enligt nedan. Det är som tidigare skrivet, ej garanterat att detta fungerar för alla.

Konfigurationen öppnar möjligheten att ta emot ett samtal på flera telefoner, där den som svarar först tar samtalet. Utgående telefoni fungerar också, men skall man kunna ringa ut från två olika nummer måste också Asterisk anpassas efter möjligheterna, med lite fulkod. Jag kallar detta för ”fusktrunk” även om benämningen troligen är helt felaktig (konfigurationen är inkluderad enligt nedan, vilket innebär att om man med denna konfiguration använder en extra nolla i början av riktnumret så används linje 2 för utgående samtal).

Operatörens egna forking-möjligheter rekommenderas starkt, eftersom operatören då tillhandahåller denna tjänst i stället för dig. Detta lär vara stabilare samt ger en del andra fördelar – såsom faktisk support. I Asterisk får du klara dig själv om telefonen plötsligt slutar fungera.

Observera även att Asterisk i dessa exempel innehåller specialkonfiguration för andra ändamål också, främst intern röstbrevlåda. Detta kan medföra att allt inte kommer att fungera på önskat sätt för andra som installerat Asterisk då all konfigurering utöver dessa exempel är individuell och nedanstående har av oförklarlig anledning skrivits på engelska.

Övriga frågor och svar följer under dessa konfigurationer.

sip.conf

Kod:
[general]
  context=default                                                ; Default context for incoming calls
  allowoverlap=no                                                ; Disable overlap dialing support. (Default is yes)
  bindport=5060                                                  ; UDP Port to bind to (SIP standard port is 5060)
  bindaddr=0.0.0.0                             ; IP address to bind to (0.0.0.0 binds to all)
  srvlookup=yes                                                  ; Enable DNS SRV lookups on outbound calls
  realm=asterisk
  domain=my.sip.domain                     ; Set default domain for this host
                                                                        ; If configured, Asterisk will only allow
                                                                        ; INVITE and REFER to non-local domains
                                                                        ; Use "sip show domains" to list local domains
  ;disallow=all                                    ; First disallow all codecs
  allow=ulaw                                     ; Allow codecs in order of preference
  allow=ulaw
  allow=alaw
  allow=g729
  rtptimeout=60                                                  ; Terminate call if 60 seconds of no RTP or RTCP activity
  rtpholdtimeout=300                          ; Terminate call if 300 seconds of no RTP or RTCP activity
   
  ; Be careful with this
  sipdebug = yes                                                 ; Turn on SIP debugging by default, from
  recordhistory=yes                            ; Record SIP history by default 
  dumphistory=yes                             ; Dump SIP history at end of SIP dialogue
   
  ;; SIP Phone 1
  register => username.megaphone.se:password@sip.megaphone.se
   
  ;; SIP Phone 2
  ; /1001 = Connect immediately to extension 1001 and pass by any automated messages...
  ; (this seem to be linked to the extension-config)
  register => username.megaphone.se:password@sip.megaphone.se/1001
   
  localnet=10.0.0.0/255.0.0.0
  localnet=192.168.0.0/255.255.0.0
  nat=yes                                                           ; Global NAT settings  (Affects all peers and users)
  canreinvite=no                                ; Asterisk by default tries to redirect the
   
  [authentication]
  ; Obviously not required (Dual stuff)
  ;;;auth=username.megaphone.se:password@sip.megaphone.se
  ;;;auth=username.megaphone.se:password@sip.megaphone.se
   
  ;;;; USER CONFIGURATION
   
  ; Main extension for home
  [self]
  type=friend
  username=me
  secret=mypassword
  host=dynamic
  context=myextension
  regexten=1001
   
  ; Let the Vood have its own extension if this runs on SIP
  [self-vood]
  type=friend
  username=self-vood
  secret=voodpassword
  host=dynamic
  context=myextension
  regexten=1011
   
  ; Let the Nokia on!
  [selfmobile]
  type=friend
  username=selfmobile
  secret=mobilepassword
  host=dynamic
  context=myextension
  regexten=1010
   
  [user1]
  type=friend
  username=user1
  secret=password1
  host=dynamic
  context=user1
  regexten=2000
   
  [user2]
  type=friend
  username=user2
  secret=password2
  host=dynamic
  context=user2
  regexten=2001
   
   
  ; The PEERS (Megaphone)
  [NUM1]
  type=peer
  username=username.megaphone.se
  fromdomain=sip.megaphone.se
  insecure=very
  qualify=yes
  nat=yes
  secret=password
  host=sip.megaphone.se
  context=default
   
  [NUM2]
  type=peer
  username=username.megaphone.se
  fromdomain=sip.megaphone.se
  insecure=very
  qualify=yes
  nat=yes
  secret=password
  host=sip.megaphone.se
  context=default
  




extensions.conf

Kod:

  [general]
  static=yes
  writeprotect=no
  clearglobalvars=no
  priorityjumping=yes
  ;#include "filename.conf"
  [globals]
  CONSOLE=Console/dsp                                                        ; Console interface for demo
  ;TRUNK=Zap/G2                                                                                  ; Trunk interface
   
  ; Never required... (This is dual number!)
  ;;;SIPtrunk=SIP/username.megaphone.se:password@sip.megaphone.se    ; SIP trunk
  ;;;SIPtrunk=SIP/username.megaphone.se:password@sip.megaphone.se    ; SIP trunk
   
  ; Used by everybody! (Incoming connections)
  [default]
  include => allextensions
  exten => s,1,NoOp(${SIP_HEADER})
  exten => s,n,NoOp(${CALLERID})
  exten => s,n,Wait(1)
  exten => s,n,Answer
  ; Play a message!
  exten => s,n,BackGround(welcome)
  ; Wait for a beep for about 2 sec!
  exten => s,n,WaitExten(2)
  ; Play another message (in this case: "redirecting your call")
  exten => s,n,BackGround(calling_dittsamtal)
  ; If no extension set above, dial those number for 30 sec
  exten => s,n,Dial(SIP/self&SIP/selfmobile&SIP/self-vood,30)
  ; Then check status...
  exten => s,n,Goto(s-${DIALSTATUS},1)                                 ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
  ; And send to voicemail for extension 1001 on no answer
  exten => s-NOANSWER,1,VoiceMail(1001,u)
   
  [self]
  include => default
  include => outgoing
   
  [self-vood]
  include => default
  include => allextensions
  include => outgoing
   
  [selfmobile]
  include => default
  include => outgoing
   
  ; Only allow internal calls for user 1
  [user1]
  include => allextensions
  exten => 1000,1,Voicemailmain(1000)
   
  ; Allow the same as "self" for user2
  [user2]
  include => allextensions
  include => outgoing
  exten => 1000,1,Voicemailmain(1000)
  exten => _X.,1,Dial(SIP/${EXTEN}@NUM1,30,r) 
   
  ; All outgoing extensions
  [outgoing]
  ; Allow yourself to dial between your external extensions
  exten => NUM1,1,Dial(SIP/${EXTEN}@NUM2,30,r)
  exten => NUM2,1,Dial(SIP/${EXTEN}@NUM1,30,r)
  ; Anything else goes out through NUM1
  exten => _X.,1,Dial(SIP/${EXTEN}@NUM1,30,r) 
  ; But if any call starts with an extra zero, use NUM2
  ; This makes both numbers available for outbound traffic
  exten => _00X.,1,Dial(SIP/${EXTEN:1}@NUM2,30,r)
  exten => s,n,Goto(s-${DIALSTATUS},1)                                 ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
  exten => s-NOANSWER,n,VoiceMail(${ARG1},u)
   
  ; Internal usage
  [allextensions]
  ; Extension 1000 - Voicemail!
  exten => 1000,1,Voicemailmain(1000)
   
  ; Self extension and the default! Try for 20 sec
  exten => 1001,1,Dial(SIP/self&SIP/self-vood&SIP/selfmobile,20)
  ; Missed calls goes to voicemail
  exten => 1001,2,VoiceMail(1001,u)
   
  ; Others
  exten => 1010,1,Dial(SIP/selfmobile,20)
  exten => 1010,2,VoiceMail(1001,u)
  exten => 1011,1,Dial(SIP/self-vood,20)
  exten => 1011,2,VoiceMail(1001,u)
   
  ; User 1
  exten => 2000,1,Dial(SIP/user1,20)
  exten => 2000,2,VoiceMail(2000,u)
   
  ; User 2
  exten => 2001,1,Dial(SIP/user2,20)
  exten => 2001,2,VoiceMail(2001,u)
   
  ; Invalid extensions goes to voicemail
  exten => i,1,VoiceMail(1001,u)
  




Specialanpassningar

Jag har ju två nummer… men när det ringer in vet jag inte vilket av numren jag söks på!

I de fall då tester har utförts med Asterisk så visas inkommande telefonnummer i stil med

Kod:
To: "0435xxxxxx"



Detta leder givetvis till problem eftersom SIP_HEADER(TO) inte kan användas på det sätt som var tänkt (denna information kan med sökningsfunktioner återfinnas på voip-info, se länk ovan). Så vitt jag förstått det, så är det ”s@xxx” som ställer till det, då numret egentligen skulle visats där istället (i stil med ”0435xxxxx@”), vilket gör att man inte kan identifiera destinationen med sip-headern. Att destinationen omnämns på samma rad spelar heller ingen roll.

Därför skrev jag om några rader i konfigurationsfilerna. Dels så lade jag in följande exten-rad i extensions.conf, efter callerid-raden:

Kod:
exten => s,n,Set(CALLERID(num)=${CALLERID(num)} to 0435xxxxxx)



Detta gör att jag kan se till vilket nummer någon ringer, åtminstone I SIP-klienten (X-lite). Hur det blir i en vanlig nummerpresentatör kan jag faktiskt inte svara på (det är mycket troligt att resultatet dels är för långt och jag misstänker att alla nummerpresentatörer inte klarar av formateringen på numret). Resultatet blir nämligen, exempelvis:

Kod:
0812345677 to 0435123456@127.0.0.1





I sip.conf har jag tidigare angett att mitt andra nummer skall gå direkt till en specifik extension:

Kod:
register => username.megaphone.se:password@sip.megaphone.se/1001



Detta ändrar jag nu på, till:

Kod:
register => username.megaphone.se:password@sip.megaphone.se/1020



Sedan lägger jag upp en ny extension under [allextensions]:

Kod:
exten => 1020,1,Set(CALLERID(num)=${CALLERID(num)} to 0435xxxxxx)
  exten => 1020,n,Dial(SIP/self&SIP/self-vood&SIP/selfmobile,20)



Nu kommer displayen, när det ringer på det andra numret visa upp till exempel:

Kod:
0812345677 to 0435654321@127.0.0.1