# Software > OpenWrt >  @@@ASTERISK [email protected]@@@Se openwrt Κι Οχι Μονο!!!!

## NiKoSaEi

*Αυτη τη στιγμη τρεχει στον κομβο μου asterisk σε openwrt 2.6.19.1 σε routerboard 532 κι οχι μονο για routerboard* 

Oταν σε πιανει το πεισμα...θελεις να μαθαινεις και να μοιραζεσαι αυτο μαζι με ολη την κοινοτητα!
Να *χιλιοευχαριστησω* τον* sokratisg* για την παραχωρηση του υλικου και .confs!
Λοιπον....στησιμo asterisk...εγω το εστησα σε Openwrt-routerboard532 και ετσι καταφερα επιτελουν με ενα sipura να εχω εισερχομενες και awmn και icall που το δοκιμασα!


Ξεκιναμε λοιπον με τα βασικα
Βαζουμε το asterisk

ipkg install asterisk
ipkg install asterisk-sound
s 
ipkg install asterisk-app-meetme

Φυσικα το ιδιο μπορει να γινει σε οποιοδηποτε linux-μηχανημα με την εγκατασταση των αναλογων πακετων οπως πχ σε debian με το
apt-get install asterisk

Για να τρεξουμε τον asterisk παταμε


```
# asterisk -cvvv
```

Ετσι βλεπουμε και τη φορτωνεται και μπορουμε να δουμε πιθανα σφαλματα
Αν δουμε αυτο 



```
Asterisk Ready.
*CLI>
```

ολα ειναι οκ!


Συνεχιζουμε με την εγκατασταση...βασικος στοχος μου ηταν εχω εξερχομενες και εισερχομενες κλησεις ταυτοχρονα σε awmn και i-call
Mην μου πειτε και για οτε...γιατι το routerboard ακομα δεν εχει θυρα pstn!

Tα βασικα αρχεια στο openwrt που χρειαστηκε να πειραματιστω ηταν το modules.conf,extensions.conf,sip.conf,queues.conf,meetme.conf(προαιρετικο),iax.conf(προαιρετικο) και codecs.conf

Ξεκιναω να ποσταρω τον κωδικα και να εξηγω οπου μπορω αυτα που εγω καταλαβα...το πως λειτουργει(Αν πω και καμια βλακεια ειναι που δεν εχω ασχοληθει πολυ με το αντικειμενο)  ::  

codecs.conf


```
[speex]
; CBR encoding quality [0..10]
; used only when vbr = false
quality => 3

; codec complexity [0..10]
; tradeoff between cpu/quality
complexity => 2

; perceptual enhancement [true / false]
; improves clarity of decoded speech
enhancement => true

; voice activity detection [true / false]
; reduces bitrate when no voice detected, used only for CBR
; (implicit in VBR/ABR)
vad => true

; variable bit rate [true / false]
; uses bit rate proportionate to voice complexity
vbr => true

; available bit rate [bps, 0 = off]
; encoding quality modulated to match this target bit rate
; not recommended with dtx or pp_vad - may cause bandwidth spikes
abr => 0

; VBR encoding quality [0-10]
; floating-point values allowed
vbr_quality => 4

; discontinuous transmission [true / false]
; stops transmitting completely when silence is detected
; pp_vad is far more effective but more CPU intensive
dtx => false

; preprocessor configuration
; these options only affect Speex v1.1.8 or newer

; enable preprocessor [true / false]
; allows dsp functionality below but incurs CPU overhead
preprocess => false

; preproc voice activity detection [true / false]
; more advanced equivalent of DTX, based on voice frequencies
pp_vad => false

; preproc automatic gain control [true / false]
pp_agc => false
pp_agc_level => 8000

; preproc denoiser [true / false]
pp_denoise => false

; preproc dereverb [true / false]
pp_dereverb => false
pp_dereverb_decay => 0.4
pp_dereverb_level => 0.3


[plc]
; for all codecs which do not support native PLC
; this determines whether to perform generic PLC
; there is a minor performance penalty for this
genericplc => true
```


iax.conf


```
; Inter-Asterisk eXchange driver definition
;
; This configuration is re-read at reload
; or with the CLI command
; 	reload chan_iax2.so
;
; General settings, like port number to bind to, and
; an option address (the default is to bind to all
; local addresses).
;
[general]
;bindport=5036			; bindport and bindaddr may be specified
;                               ; NOTE: bindport must be specified BEFORE bindaddr
;                               ; or may be specified on a specific bindaddr if followed by
;                               ; colon and port (e.g. bindaddr=192.168.0.1:4569)
;bindaddr=192.168.0.1
;bindaddr
;bindaddr if followed by
;bindaddr=10.42.53.1		; more than once to bind to multiple
;                               ; addresses, but the first will be the 
;                               ; default
;
; Set iaxcompat to yes if you plan to use layered switches or
; some other scenario which may cause some delay when doing a
; lookup in the dialplan. It incurs a small performance hit to
; enable it. This option causes Asterisk to spawn a separate thread
; when it receives an IAX DPREQ (Dialplan Request) instead of
; blocking while it waits for a response.
;
;iaxcompat=yes
;
; Disable UDP checksums (if nochecksums is set, then no checkums will
; be calculated/checked on systems supporting this feature)
;
;nochecksums=no
;
;
; For increased security against brute force password attacks
; enable "delayreject" which will delay the sending of authentication
; reject for REGREQ or AUTHREP if there is a password.  
;
delayreject=yes
;
; You may specify a global default AMA flag for iaxtel calls.  It must be
; one of 'default', 'omit', 'billing', or 'documentation'.  These flags
; are used in the generation of call detail records.
;
amaflags=default
;
; You may specify a default account for Call Detail Records in addition
; to specifying on a per-user basis
;
;accountcode=lss0101
;
; You may specify a global default language for users. 
; Can be specified also on a per-user basis
; If omitted, will fallback to english
;
;language=en
;
; Specify bandwidth of low, medium, or high to control which codecs are used
; in general.
;
bandwidth=low
;
; You can also fine tune codecs here using "allow" and "disallow" clauses
; with specific codecs.  Use "all" to represent all formats.
;
disallow=all
;allow=all			; same as bandwidth=high
;disallow=g723.1		; Hm...  Proprietary, don't use it...
;disallow=lpc10			; Icky sound quality...  Mr. Roboto.
;allow=gsm			; Always allow GSM, it's cool :)
;
allow=ulaw
allow=alaw
allow=gsm
; You can adjust several parameters relating to the jitter buffer.
; The jitter buffer's function is to compensate for varying
; network delay.
;
; There are presently two jitterbuffer implementations available for Asterisk
; and chan_iax2; the classic and the new, channel/application independent
; implementation.  These are controlled at compile-time.  The new jitterbuffer
; additionally has support for PLC which greatly improves quality as the
; jitterbuffer adapts size, and in compensating for lost packets.
;
; All the jitter buffer settings except dropcount are in milliseconds.
; The jitter buffer works for INCOMING audio - the outbound audio
; will be dejittered by the jitter buffer at the other end.
;
; jitterbuffer=yes|no: global default as to whether you want
; the jitter buffer at all.
;
; forcejitterbuffer=yes|no: in the ideal world, when we bridge VoIP channels
; we don't want to do jitterbuffering on the switch, since the endpoints
; can each handle this.  However, some endpoints may have poor jitterbuffers 
; themselves, so this option will force * to always jitterbuffer, even in this
; case.
; [This option presently applies only to the new jitterbuffer implementation]
;
; dropcount: the jitter buffer is sized such that no more than "dropcount"
; frames would have been "too late" over the last 2 seconds.
; Set to a small number.  "3" represents 1.5% of frames dropped
; [This option is not applicable to, and ignored by the new jitterbuffer implementation]
;
; maxjitterbuffer: a maximum size for the jitter buffer.
; Setting a reasonable maximum here will prevent the call delay
; from rising to silly values in extreme situations; you'll hear
; SOMETHING, even though it will be jittery.
;
; resyncthreshold: when the jitterbuffer notices a significant change in delay
; that continues over a few frames, it will resync, assuming that the change in
; delay was caused by a timestamping mix-up. The threshold for noticing a
; change in delay is measured as twice the measured jitter plus this resync
; threshold.
; Resyncing can be disabled by setting this parameter to -1.
; [This option presently applies only to the new jitterbuffer implementation]
;
; maxjitterinterps: the maximum number of interpolation frames the jitterbuffer
; should return in a row. Since some clients do not send CNG/DTX frames to
; indicate silence, the jitterbuffer will assume silence has begun after
; returning this many interpolations. This prevents interpolating throughout
; a long silence.
; [This option presently applies only to the new jitterbuffer implementation]
;
; maxexcessbuffer: If conditions improve after a period of high jitter,
; the jitter buffer can end up bigger than necessary.  If it ends up
; more than "maxexcessbuffer" bigger than needed, Asterisk will start
; gradually decreasing the amount of jitter buffering.
; [This option is not applicable to, and ignored by the new jitterbuffer implementation]
;
; minexcessbuffer: Sets a desired mimimum amount of headroom in 
; the jitter buffer.  If Asterisk has less headroom than this, then
; it will start gradually increasing the amount of jitter buffering.
; [This option is not applicable to, and ignored by the new jitterbuffer implementation]
;
; jittershrinkrate: when the jitter buffer is being gradually shrunk 
; (or enlarged), how many millisecs shall we take off per 20ms frame
; received?  Use a small number, or you will be able to hear it
; changing.  An example: if you set this to 2, then the jitter buffer
; size will change by 100 millisecs per second.
; [This option is not applicable to, and ignored by the new jitterbuffer implementation]

jitterbuffer=no
forcejitterbuffer=no
;dropcount=2
;maxjitterbuffer=1000
;maxjitterinterps=10
;resyncthreshold=1000
;maxexcessbuffer=80
;minexcessbuffer=10
;jittershrinkrate=1

;trunkfreq=20			; How frequently to send trunk msgs (in ms)

; Should we send timestamps for the individual sub-frames within trunk frames?
; There is a small bandwidth use for these (less than 1kbps/call), but they
; ensure that frame timestamps get sent end-to-end properly.  If both ends of
; all your trunks go directly to TDM, _and_ your trunkfreq equals the frame
; length for your codecs, you can probably suppress these.  The receiver must
; also support this feature, although they do not also need to have it enabled.
;
; trunktimestamps=yes
;
; Minimum and maximum amounts of time that IAX peers can request as
; a registration expiration interval (in seconds).
; minregexpire = 60
; maxregexpire = 60
;
; We can register with another IAX server to let him know where we are
; in case we have a dynamic IP address for example
;
; Register with tormenta using username marko and password secretpass
;
;register => marko:[email protected]
;
; Register joe at remote host with no password
;
;register => [email protected]:5656
;
; Register marko at tormenta.linux-support.net using RSA key "torkey"
;
;register => marko:[torkey]@tormenta.linux-support.net
;
; Sample Registration for iaxtel
;
; Visit http://www.iaxtel.com to register with iaxtel.  Replace "user"
; and "pass" with your username and password for iaxtel.  Incoming 
; calls arrive at the "s" extension of "default" context.
;
;register => user:[email protected]
;
; Sample Registration for IAX + FWD
;
; To register using IAX with FWD, it must be enabled by visiting the URL
; http://www.fwdnet.net/index.php?section_id=112
;
; Note that you need an extension in you default context which matches
; your free world dialup number.  Please replace "FWDNumber" with your
; FWD number and "passwd" with your password.
;
;register => nikosaei-asterisk:[email protected]:5036
;
;
; You can disable authentication debugging to reduce the amount of 
; debugging traffic.
;
;authdebug=no
;
; Finally, you can set values for your TOS bits to help improve 
; performance.  Valid values are:
;   lowdelay		-- Minimize delay
;   throughput		-- Maximize throughput
;   reliability		-- Maximize reliability
;   mincost		-- Minimize cost
;   none		-- No flags
;
tos=lowdelay
;
; If mailboxdetail is set to "yes", the user receives
; the actual new/old message counts, not just a yes/no
; as to whether they have messages.  this can be set on
; a per-peer basis as well
;
;mailboxdetail=yes
;
; If regcontext is specified, Asterisk will dynamically create and destroy
; a NoOp priority 1 extension for a given peer who registers or unregisters
; with us.  The actual extension is the 'regexten' parameter of the registering
; peer or its name if 'regexten' is not provided.  More than one regexten
; may be supplied if they are separated by '&'.  Patterns may be used in
; regexten.
;
;regcontext=iaxregistrations
;
; If we don't get ACK to our NEW within 2000ms, and autokill is set to yes,
; then we cancel the whole thing (that's enough time for one retransmission
; only).  This is used to keep things from stalling for a long time for a host
; that is not available, but would be ill advised for bad connections.  In
; addition to 'yes' or 'no' you can also specify a number of milliseconds.
; See 'qualify' for individual peers to turn on for just a specific peer.
;
autokill=yes
;
; codecpriority controls the codec negotiation of an inbound IAX call.
; This option is inherited to all user entities.  It can also be defined 
; in each user entity separately which will override the setting in general.
;
; The valid values are:
;
; caller   - Consider the callers preferred order ahead of the host's.
; host     - Consider the host's preferred order ahead of the caller's.
; disabled - Disable the consideration of codec preference altogether.
;            (this is the original behaviour before preferences were added)
; reqonly  - Same as disabled, only do not consider capabilities if
;            the requested format is not available the call will only
;            be accepted if the requested format is available.
;
; The default value is 'host'
;
codecpriority=host

;rtcachefriends=yes		; Cache realtime friends by adding them to the internal list
				; just like friends added from the config file only on a
				; as-needed basis? (yes|no)

;rtupdate=yes			; Send registry updates to database using realtime? (yes|no)
				; If set to yes, when a IAX2 peer registers successfully, the ip address,
				; the origination port, the registration period, and the username of
				; the peer will be set to database via realtime. If not present, defaults to 'yes'.

;rtautoclear=yes		; Auto-Expire friends created on the fly on the same schedule
				; as if it had just registered? (yes|no|<seconds>)
				; If set to yes, when the registration expires, the friend will vanish from
				; the configuration until requested again. If set to an integer,
				; friends expire within this number of seconds instead of the
				; registration interval.

;rtignoreregexpire=yes		; When reading a peer from Realtime, if the peer's registration
				; has expired based on its registration interval, used the stored
				; address information regardless. (yes|no)

; Guest sections for unauthenticated connection attempts.  Just specify an
; empty secret, or provide no secret section.
;
[guest]
type=user
context=default
callerid="Guest IAX User"

;
; Trust Caller*ID Coming from iaxtel.com
;
[iaxtel]
type=user
context=default
auth=rsa
inkeys=iaxtel

;
; Trust Caller*ID Coming from iax.fwdnet.net
;
[iaxfwd]
type=user
context=default
auth=rsa
inkeys=freeworlddialup

;
; Trust callerid delivered over DUNDi/e164
;
;
;[dundi]
;type=user
;dbsecret=dundi/secret
;context=dundi-e164-local

;
; Further user sections may be added, specifying a context and a secret used
; for connections with that given authentication name.  Limited IP based
; access control is allowed by use of "allow" and "deny" keywords.  Multiple
; rules are permitted.  Multiple permitted contexts may be specified, in
; which case the first will be the default.  You can also override caller*ID
; so that when you receive a call you set the Caller*ID to be what you want
; instead of trusting what the remote user provides
;
; There are three authentication methods that are supported:  md5, plaintext,
; and rsa.  The least secure is "plaintext", which sends passwords cleartext
; across the net.  "md5" uses a challenge/response md5 sum arrangement, but
; still requires both ends have plain text access to the secret.  "rsa" allows
; unidirectional secret knowledge through public/private keys.  If "rsa"
; authentication is used, "inkeys" is a list of acceptable public keys on the 
; local system that can be used to authenticate the remote peer, separated by
; the ":" character.  "outkey" is a single, private key to use to authenticate
; to the other side.  Public keys are named /var/lib/asterisk/keys/<name>.pub
; while private keys are named /var/lib/asterisk/keys/<name>.key.  Private
; keys should always be 3DES encrypted.
;
;
; NOTE: All hostnames and IP addresses in this file are for example purposes
;       only; you should not expect any of them to actually be available for
;       your use.
;
;
;[markster]
;type=user
;context=default
;context=local
;auth=md5,plaintext,rsa
;secret=markpasswd
;setvar=foo=bar
;dbsecret=mysecrets/place	; Secrets can be stored in astdb, too
;notransfer=yes		; Disable IAX native transfer
;jitterbuffer=yes	; Override global setting an enable jitter buffer
;			; for this user
;maxauthreq=10		; Set maximum number of outstanding AUTHREQs waiting for replies. Any further authentication attempts will be blocked
;			; if this limit is reached until they expire or a reply is received.
;callerid="Mark Spencer" <(256) 428-6275>
;deny=0.0.0.0/0.0.0.0
;accountcode=markster0101
;permit=209.16.236.73/255.255.255.0
;language=en		; Use english as default language
;
; Peers may also be specified, with a secret and
; a remote hostname.
;
;[demo]
;type=peer
;username=asterisk
;secret=supersecret
;host=216.207.245.47
;sendani=no
;host=asterisk.linux-support.net
;port=5036
;mask=255.255.255.255

;[nikosaei-iax]
;type=peer
;username=nikosaei-iax
;secret=xxxxxx
;host=10.42.53.115
;context=internal-network
;deny=0.0.0.0/0.0.0.0
;permit=10.42.53.115/255.255.255.248



qualify=yes			; Make sure this peer is alive
qualifysmoothing = yes		; use an average of the last two PONG
			; results to reduce falsely detected LAGGED hosts
				; Default: Off
qualifyfreqok = 60000		; how frequently to ping the peer when
				; everything seems to be ok, in milliseconds
qualifyfreqnotok = 10000	; how frequently to ping the peer when it's
				; either LAGGED or UNAVAILABLE, in milliseconds
jitterbuffer=no		; Turn off jitter buffer for this peer

;
; Peers can remotely register as well, so that they can be mobile.  Default
; IP's can also optionally be given but are not required.  Caller*ID can be
; suggested to the other side as well if it is for example a phone instead of
; another PBX.
;

;[dynamichost]
;host=dynamic
;secret=mysecret
;mailbox=1234		; Notify about mailbox 1234
;inkeys=key1:key2
;peercontext=local	; Default context to request for calls to peer
;defaultip=216.207.245.34
;callerid="Some Host" <(256) 428-6011>
;

;
;[biggateway]
;type=peer
;host=192.168.0.1
;context=*
;secret=myscret
;trunk=yes			; Use IAX2 trunking with this host
;timezone=America/New_York	; Set a timezone for the date/time IE
;

;
; Friends are a short cut for creating a user and
; a peer with the same values.
;
;[marko]
;type=friend
;host=dynamic
;regexten=1234
;secret=moofoo   ; Multiple secrets may be specified. For a "user", all
;secret=foomoo   ; specified entries will be accepted as valid. For a "peer",
;secret=shazbot  ; only the last specified secret will be used.
;context=default
;permit=0.0.0.0/0.0.0.0
```

Auτο ειναι για ενα Conference Room (Προαιρετικο)



```
[general]
audiobuffers=32

[rooms]

conf => 61030
```


Εδω επρεπε να αλλαξουμε καποια modules απο noload->σε load

modules.conf



```
;
; Asterisk configuration file
;
; Module Loader configuration file
;

[modules]
autoload=yes
;
; Any modules that need to be loaded before the Asterisk core has been
; initialized (just after the logger has been initialized) can be loaded
; using 'preload'. This will frequently be needed if you wish to map all
; module configuration files into Realtime storage, since the Realtime
; driver will need to be loaded before the modules using those configuration
; files are initialized.
;
; An example of loading ODBC support would be:
;preload => res_odbc.so
;preload => res_config_odbc.so
;
noload => res_config_mysql.so ; 
;
; load => res_features.so ; Call Parking Resource 
noload => res_indications.so ; Indications Configuration
noload => res_monitor.so ; Call Monitoring Resource 
; load => res_musiconhold.so ; Music On Hold Resource 
noload => cdr_csv.so ; Comma Separated Values CDR Backend
noload => cdr_custom.so ; Customizable Comma Separated Values CDR Backend
noload => cdr_manager.so ; Asterisk Call Manager CDR Backend
noload => cdr_mysql.so ; MySQL CDR Backend
noload => cdr_pgsql.so ; PostgreSQL CDR Backend
noload => cdr_sqlite.so ; SQLite CDR Backend
noload => chan_agent.so ; Agent Proxy Channel
; load => chan_iax2.so ; Inter Asterisk eXchange (Ver 2)
; load => chan_local.so ; Local Proxy Channel
; load => chan_sip.so ; Session Initiation Protocol (SIP)
noload => codec_a_mu.so ; A-law and Mulaw direct Coder/Decoder
noload => codec_adpcm.so ; Adaptive Differential PCM Coder/Decoder
load => codec_alaw.so ; A-law Coder/Decoder
noload => codec_g726.so ; ITU G.726-32kbps G726 Transcoder
 load => codec_gsm.so ; GSM/PCM16 (signed linear) Codec Translation
 load => codec_ulaw.so ; Mu-law Coder/Decoder
noload => codec_speex.so ; Speex/PCM16 (signed linear) Codec Translator
noload => format_au.so ; Sun Microsystems AU format (signed linear)
noload => format_g723.so ; G.723.1 Simple Timestamp File Format
noload => format_g726.so ; Raw G.726 (16/24/32/40kbps) data
noload => format_g729.so ; Raw G729 data
; load => format_gsm.so ; Raw GSM data
noload => format_h263.so ; Raw h263 data
noload => format_jpeg.so ; JPEG (Joint Picture Experts Group) Image
; load => format_pcm.so ; Raw uLaw 8khz Audio support (PCM)
load => format_pcm_alaw.so ; Raw aLaw 8khz PCM Audio support
noload => format_sln.so ; Raw Signed Linear Audio support (SLN)
noload => format_vox.so ; Dialogic VOX (ADPCM) File Format
; load => format_wav.so ; Microsoft WAV format (8000hz Signed Line
; load => format_wav_gsm.so ; Microsoft WAV format (Proprietary GSM)
noload => app_alarmreceiver.so ; Alarm Receiver Application
noload => app_authenticate.so ; Authentication Application
noload => app_cdr.so ; Make sure asterisk doesn't save CDR
noload => app_chanisavail.so ; Check if channel is available
noload => app_chanspy.so ; Listen in on any channel
noload => app_controlplayback.so ; Control Playback Application
noload => app_cut.so ; Cuts up variables
noload => app_db.so ; Database access functions
; load => app_dial.so ; Dialing Application
noload => app_dictate.so ; Virtual Dictation Machine Application
noload => app_directory.so ; Extension Directory
noload => app_directed_pickup.so ; Directed Call Pickup Support
noload => app_disa.so ; DISA (Direct Inward System Access) Application
noload => app_dumpchan.so ; Dump channel variables Application
; load => app_echo.so ; Simple Echo Application
noload => app_enumlookup.so ; ENUM Lookup
noload => app_eval.so ; Reevaluates strings
noload => app_exec.so ; Executes applications
noload => app_externalivr.so ; External IVR application interface
noload => app_forkcdr.so ; Fork The CDR into 2 seperate entities
noload => app_getcpeid.so ; Get ADSI CPE ID
noload => app_groupcount.so ; Group Management Routines
noload => app_ices.so ; Encode and Stream via icecast and ices
noload => app_image.so ; Image Transmission Application
noload => app_lookupblacklist.so ; Look up Caller*ID name/number from black
noload => app_lookupcidname.so ; Look up CallerID Name from local databas
; load => app_macro.so ; Extension Macros
noload => app_math.so ; A simple math Application
noload => app_md5.so ; MD5 checksum Application
; load => app_milliwatt.so ; Digital Milliwatt (mu-law) Test Application
noload => app_mixmonitor.so ; Record a call and mix the audio during the recording
noload => app_parkandannounce.so ; Call Parking and Announce Application
; load => app_playback.so ; Trivial Playback Application
noload => app_privacy.so ; Require phone number to be entered, if n
noload => app_queue.so ; True Call Queueing
noload => app_random.so ; Random goto
noload => app_read.so ; Read Variable Application
noload => app_readfile.so ; Read in a file
noload => app_realtime.so ; Realtime Data Lookup/Rewrite
noload => app_record.so ; Trivial Record Application
; load => app_sayunixtime.so ; Say time
noload => app_senddtmf.so ; Send DTMF digits Application
noload => app_sendtext.so ; Send Text Applications
noload => app_setcallerid.so ; Set CallerID Application
noload => app_setcdruserfield.so ; CDR user field apps
noload => app_setcidname.so ; Set CallerID Name
noload => app_setcidnum.so ; Set CallerID Number
noload => app_setrndis.so ; Set RDNIS Number
noload => app_settransfercapability.so ; Set ISDN Transfer Capability
noload => app_sms.so ; SMS/PSTN handler
noload => app_softhangup.so ; Hangs up the requested channel
noload => app_sql_mysql.so ; Simple MySQL Interface
noload => app_sql_postgres.so ; Simple PostgreSQL Interface
noload => app_stack.so ; Stack Routines
noload => app_system.so ; Generic System() application
noload => app_talkdetect.so ; Playback with Talk Detection
noload => app_test.so ; Interface Test Application
noload => app_transfer.so ; Transfer
noload => app_txtcidname.so ; TXTCIDName
noload => app_url.so ; Send URL Applications
noload => app_userevent.so ; Custom User Event Application
; load => app_verbose.so ; Send verbose output
noload => app_waitforring.so ; Waits until first ring after time
noload => app_waitforsilence.so ; Wait For Silence Application
noload => app_while.so ; While Loops and Conditional Execution
noload => pbx_ael.so ; Asterisk Extension Language Compiler
; load => pbx_config.so ; Text Extension Configuration
noload => pbx_functions.so ; Builtin dialplan functions
noload => pbx_loopback.so ; Loopback Switch
noload => pbx_realtime.so ; Realtime Switch
noload => pbx_spool.so ; Outgoing Spool Support
noload => pbx_wilcalu.so ; Wil Cal U (Auto Dialer) 
noload => func_callerid.so ; Caller ID related dialplan functions
noload => func_enum.so ; ENUM Functions
noload => func_uri.so ; URI encoding / decoding functions

;
; Module names listed in "global" section will have symbols globally
; exported to modules loaded after them.
;
[global]
chan_modem.so=no
```


queues.conf


```
musiconhold = default

announce = queue-markq

strategy = roundrobin

;context = qoutcon

timeout = 10

retry = 4

announce-frequency = 90

[queue1]

member => SIP/51031

member => SIP/51032
```


Kαι τωρα τα βασικα το sip.conf οπου θα καταχωρησουμε τις συσκευες μας και με ποιους sip-servers θα μιλαω προς τα εξω ο asterisk.

sip.conf


```
[general]
port=5060 ; Port to bind to (SIP is 5060)
bindaddr =10.42.53.1 ;ιp που τρεχει ο asterisk
useragent=NiKoSaEi [nikosaei] #5103-PBX*
nat=no ;εφοσον δεν ειμαστε πισω απο nat
context=default
disallow=all
;allow=ilbc
allow=alaw
allow=ulaw
;allow=g729
;allow=gsm
;allow=all
externip=63.xx.xxx.xx ;η ιντερνετικη μας ip
localnet=10.42.53.1/8 ;το τοπικο μας δικτυο
srvlookup=yes 

register => [email protected]/51031 ;κλασικο register του voip μας
register => [email protected]/51032 ;αλλο ενα
;Παρακατω κανουμε ενα register sto icall,οι κωδικοι δεν ισχυουν στην ;πραγματικοτητα ουτε το τηλεφωνο απο το icall in
register => nikosaei:[email protected]/2115777777 ;register icall
register => [email protected]/51030 ; Conference Room ;Προαιρετικο


[awmn]
type=peer
context=awmn
host=sip.awmn
qualify=300
canreinvite=yes
context=default
disallow=all
allow=ulaw
;allow=alaw
allow=g726
allow=g729
allow=gsm


[51031]

type=friend
secret=51031
username=51031
host=dynamic
canreinvite=yes
context=external-nikosaei
callerid=NiKoSaEi1<51031>
qualify=yes
nat=no


[51032]

type=friend
secret=51032
username=51032
host=dynamic
canreinvite=yes
context=external-nikosaei
callerid=NiKoSaEi2<51032>
qualify=yes
nat=no

[icall-nikosaei]
type=peer
insecure=very
fromdomain=i-call.gr
fromuser=nikosaei
username=nikosaei
secret=nikosaei
qualify=yes
nat=yes
host=sip.i-call.gr
canreinvite=yes
context=icall-nikosaei
disallow=all
;allow=ilbc
allow=ulaw
allow=alaw
;allow=g729
```

Tα παραπανω στοιχεια ξαναλεω δεν ειναι πραγματικα!!!
Εσεις θα βαλεται τα δικα σας  :: 

Συνεχιζουμε με το extensions.conf

extensions.conf



```
[general]
static=yes
writeprotect=yes
;autofallthrough=yes
;clearglobalvars=yes
;priorityjumping=no


;;εδω του λεμε οταν δει 5ψηφιο 6ψηφιο να τα παει απο awmn;
[awmn]
exten => _XXXXX,1,Dial(SIP/${EXTEN}@sip.awmn,45,Rtj)
exten => _XXXXX,2,Playback(number-not-answering)
exten => _XXXXX,3,Hangup
exten => _XXXXX,102,Playback(the-number-u-dialed)
exten => _XXXXX,103,Playback(is-currently)
exten => _XXXXX,104,Playback(unavailable)
exten => _XXXXX,105,Hangup

exten => _XXXXXX,1,Dial(SIP/${EXTEN}@sip.awmn,45,Rtj)
exten => _XXXXXX,2,Playback(number-not-answering)
exten => _XXXXXX,3,Hangup
exten => _XXXXXX,102,Playback(the-number-u-dialed)
exten => _XXXXXX,103,Playback(is-currently)
exten => _XXXXXX,104,Playback(unavailable)
exten => _XXXXXX,105,Hangup


;Εδω θελει λιγη προσοχη να το καταλαβετε...το 7070077777 υποτιθεται
;ειναι το εικονικο νουμερο που δινει η icall,εσεις βαζεται το δικο σας
;κι επιπλεον λεω διπλα να προωθηθει η εισερχομενη κληση απο icall
;στο 51031...που ειναι το sipura mou
[icall-nikosaei]
;
; Incoming Internet calls.
; Ring SIP extensions.
;
exten => 7070077777/_707XXXXXXX,1,Dial(SIP/51031,45,Rtj)
exten => 7070077777/_707XXXXXXX,2,Playback(number-not-answering)
exten => 7070077777/_707XXXXXXX,3,Hangup
exten => 7070077777/_707XXXXXXX,102,Playback(the-number-u-dialed)
exten => 7070077777/_707XXXXXXX,103,Playback(is-currently)
exten => 7070077777/_707XXXXXXX,104,Playback(unavailable)
exten => 7070077777/_707XXXXXXX,105,Hangup
; Outgoing calls.
; Every 10 digit number is passed to iCall peer.
;

;Προσοχη αυτη τη γραμμη δεν ξερω γιατι το ποσταρε ετσι...το extend =>
;παει απο κατω οπως ειναι τα αλλα
exten =>
_XXXXXXXXXX/_5103X,1,Dial(SIP/${EXTEN}@icall-nikosaei,45,Rtj)
exten => _XXXXXXXXXX/_5103X,2,Playback(number-not-answering)
exten => _XXXXXXXXXX/_5103X,3,Hangup
exten => _XXXXXXXXXX/_5103X,102,Playback(the-number-u-dialed)
exten => _XXXXXXXXXX/_5103X,103,Playback(is-currently)
exten => _XXXXXXXXXX/_5103X,104,Playback(unavailable)
exten => _XXXXXXXXXX/_5103X,105,Hangup
; Incoming for real number
exten => 2115777777,1,Dial(SIP/61031,45,Rtj)
exten => 2115777777,n,Playback(number-not-answering)
exten => 2115777777,n,Hangup
exten => 2115777777,n+101,Playback(the-number-u-dialed)
exten => 2115777777,n+102,Playback(is-currently)
exten => 2115777777,n+103,Playback(unavailable)
exten => 2115777777,n+104,Hangup
;Προσοχη στο sip.conf εχω χρησιμοποιησει καποια contexts ειναι αυτα τα οποια τα κοιτα μετα ο * για να δει πως θα κινηθει η κληση βαση το 
;dial-plan,επιπλεον προσεξτε και τις καταχωρησεις icall-nikosaei,awmn ktl
;ολα εχουν λογο που ειναι ετσι γραμμενα και ολα συνεργαζονται μεταξυ
;τους!!


[internal]
;nikosaei
exten => 51031,1,Dial(SIP/51031,45,Rtj)
exten => 51031,2,Playback(number-not-answering)
exten => 51031,3,Hangup
exten => 51031,102,Playback(the-number-u-dialed)
exten => 51031,103,Playback(is-currently)
exten => 51031,104,Playback(unavailable)
exten => 51031,105,Hangup

;nikosaei-pc
exten => 51032,1,Dial(SIP/51032,45,Rtj)
exten => 51032,2,Playback(number-not-answering)
exten => 51032,3,Hangup
exten => 51032,102,Playback(the-number-u-dialed)
exten => 51032,103,Playback(is-currently)
exten => 51032,104,Playback(unavailable)
exten => 51032,105,Hangup



[local]
include => parkedcalls
include => internal
include => awmn

[globals]
;CONSOLE=Console/dsp				; Console interface for demo
;CONSOLE=Zap/1
;CONSOLE=Phone/phone0
;SpeakingClock=00141

[default]
; Or a conference room (you'll need to edit meetme.conf to enable this room)
exten => 51030,1,Meetme(61030|M)

include => local

;Dialplans for registered users
;
;Internal calls 
[internal-network]
include => default
include => internal
include => awmn

;External calls 
;
[external-nikosaei]
include => default
include => internal
include => icall-nikosaei
include => awmn

;[iax]
;include => default
;include => internal
;include => awmn

;Οπως βλεπετε χωρισαμε το dial-plan και την λειτουργια του server με τα
;πολυτιμα εργαλεια του sokratisg σε internal και external
;Ετσι απο οτι καταλαβα μπορουμε ευκολα να προσθεσουμε πελατες στο 
;* μας κι αναλογα το context που θα βαλουμε internal px θα καλουν awmn 
; και local αν βαλουμε external θα μπορουν να παιρνουν τηλεφωνα και 
;icall
```



To Αποτελεσμα ειναι να τρεξουμε asterisk σε openwrt (κι οχι μονο εκει)
H δυνατοτητα του openwrt να μπαινει σε wrt-like boards δινει τη δυνατοτητα να στησουμε εναν απλο και ευχρηστο asterisk...xωρις πολλα καλουδια..εννοειτε...αλλα να κανει απλα την δουλεια του!

Βγαλτε οτι wrt εχετε και δοκιμαστε....!!!!  ::  
Επειδη το πακετο asterisk ειναι αρκετα μεγαλο και μπορει να μην χωρεσει στη μνημη του wrt,και οποια συσκευη υποστηριζεται απο openwrt, τοτε δοκιμαστε να βαλετε την mini εκδοση του asterisk

ipkg install asterisk-mini
Δεν το δοκιμασα αλλα λογικα θα παιζει!
Μπηκα στην διαδικασια να γραψω αυτον τον οδηγο γιατι δεν υπηρχε καπου συγκεντρωμενη η πληροφορια!
Σχολια παρατηρησεις δεκτες...δεν ξερω και πολλα..!  ::

----------


## dti

Μία ακόμη *εξαιρετική* προσπάθεια από τον Νίκο! 
Παράδειγμα προς μίμηση και μία ακόμη απόδειξη γιατί ΔΕΝ πρέπει να είμαστε αρνητικοί στο "νέο αίμα". Αυτοί είναι που θα συνεχίσουν και θα καταξιώσουν το awmn ακόμη περισσότερο!

----------


## nikpanGR

Niκόλα είσαι αρχηγόπουλο,μπράβο και πάλι μπράβο.Παράδειγμα πρός μίμηση.(Αλήθεια εκείνο τον κάφέ πότε θα τον πιούμε?).Σ ευχαριστώ πολύ πού μοιράζεσαι τις εμπειρίες και τα ψαξίματα σου,έχει καταντήσει σπάνιο φαινόμενο.Σ ευχαριστώ...

----------


## acoul

είχε καλό δάσκαλο ...  ::

----------


## pathfinder

Θα το δοκιμασω στο WRT54G που εχω και καθετε μιας και δεν μπορεσα να το σπασω σε VLAN για ρουτερ!!!  ::

----------


## ALTAiR

Bravo Νίκο και Σωκράτη, το τυπώνω μήπως το δοκιμάσω κάποια στιγμή και εγώ... 

@ dti 
Είσαι ο μόνος που το λες και το εννοείς για τους νέους. Bravo και σε σένα που μας υποστηρίζεις.

----------


## NiKoSaEi

> είχε καλό δάσκαλο ...


Ειχα....  ::

----------


## acoul



----------


## bedazzled

Βρε Άλεξ γιατί το χαλάς τώρα;  :: 
παγώνι == ο Άλεξ κορδωμένος από υπερηφάνεια ή λάθος μάντεψα;  :: 

@NiKoSaEi
good job, keep up  ::

----------


## NiKoSaEi

Παλι θα το @@@@σετε το post με τις βλακεις για τον acoul....????

Παρακαλω τους admin...να ξηλωσουν τα ειρωνικα σχολια...please...θα ξεφυγει κλασικα η κατασταση!!!
Eδω γινεται προσπαθεια να συγκεντρωνουμε τις πληροφοριες και τα tutorials!!!!!!  :: 

Eυχαριστω bedazzled...και συγνωμη!

----------


## sotirisk

Μπράβο Νίκο, πολύ χρήσιμο  ::

----------


## kinglyr

Νίκο ένα μεγάλο ευχαριστώ και από μένα για τις χρήσιμες πληροφορίες που βρήκα στο post σου αυτό...  ::

----------


## Nikiforos

Ευχαριστώ και εγώ το Νίκο με την σειρά μου μιάς και πρόσφατα άρχισα να ασχολούμε και έχω asterisk server σε debian lenny χωρίς GUI και πεδεύομαι μέρες τώρα! είναι το μοναδικό configuration που επιτέλους έπαιξε!!!  ::   ::   ::

----------


## Nikiforos

Λοιπόν μετά από χρήση trixbox σε Virtualbox επάνω σε debian testing, αλλά και σε άλλο pc σε κάρτα CF 8GB, δοκίμασα το openWRT backfire σε Virtualbox αλλά και σε κάρτα CF 256MB. Εβαλα το πακέτο asterisk16 μαζί με διάφορα άλλα μέσα από το Luci, έγραψα τα διάφορα confs με nano και ενώ τα sip clients συνδέονται, ο asterisk τρέχει κανονικά, δλδ με asterisk -r συνδέομαι, και το SPA συνδέεται και αυτο, δεν μπορώ να κάνω κλήσεις πουθενά και βγάζει σαν λάθος αυτό : astdb dir not found in /lib/asterisk
Το αρχείο που δηλώνει την βαση είναι το /etc/asterisk/asterisk.conf
Επίσης αν είμαι μέσα στον asterisk δεν παίζουν οι εντολές, μάλλον λογικό αφού δεν βρίσκει την βάση! καμιά ιδέα κανείς? μάλλον αυτό το θέμα έμεινε και μετά θα παίζει!
Το παράξενο είναι πως σε άλλα αρχεία asterisk.conf όπως και στο trixbox δεν αναφέρει πουθενά το astdb!
όπως και εδώ : http://www.asteriskguru.com/tutorial...risk_conf.html

----------


## romias

Δες αν είναι εγκατεστημένο το asterisk14-mysql η asterisk14-pgsql η asterisk14-sqlite.

Edit: Ακυρο,εχεις βάλει τον asterisk16.
Μήπως να δοκίμαζες το 14?

----------


## Nikiforos

Το λάθος για το error ήταν στο αρχείο /etc/asterisk/asterisk.conf στο οποιό στην αρχή έλεγε δίπλα στο [directories] (!)
αυτό το ερωτηματικό ήθελε να το σβήσω για να γίνουν enable! το έκανα και τέρμα τα errors! παλι όμως τηλεφωνα δεν παίρνω! αφού συνδέθηκα στον asterisk με asterisk -r φυσικά είδα αυτά :

OpenWrt*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status 
101/101 10.2.237.6 D 5060 OK (8 ms) 
110/110 10.2.237.2 D 5060 OK (11 ms) 
126331 (Unspecified) D 5060 UNKNOWN 
GSM/GSM 10.2.237.18 5062 UNREACHABLE 
awmn126331/126331 10.21.124.60 5060 OK (19 ms) 
spa3102 10.2.237.2 5061 OK (5 ms) 
6 sip peers [Monitored: 4 online, 2 offline Unmonitored: 0 online, 0 offline]
[Mar 1 18:07:38] NOTICE[4710]: chan_sip.c:20200 handle_request_invite: Call from '101' to extension '110' rejected because extension not found in context 'from-internal'.
[Mar 1 18:07:43] NOTICE[4710]: chan_sip.c:20200 handle_request_invite: Call from '101' to extension '110' rejected because extension not found in context 'from-internal'.
[Mar 1 18:08:30] NOTICE[4710]: chan_sip.c:20200 handle_request_invite: Call from '110' to extension '96972740952' rejected because extension not found in context 'from-internal

όπως βλέπουμε το SPA όπως και τα αλλα sip registrations είναι οκ, τηλέφωνα δεν παιρνω δλδ τι μπορει να φταίει σε ποιο αρχείο? στο extensions.conf?

----------


## tsatasos

Δεν έχω ασχοληθεί καθόλου με asterisk, αλλά αφού κάνει register και δεν παίρνει τηλέφωνο μήπως πρέπει να κοιτάξεις το dial plan?

----------


## Nikiforos

Ξερω τι φταιει, το αρχείο extensions.conf είναι αντιγραφή από το extensions_additional.conf του trixbox που εχω, και είναι πολυ σύνθετο με macro εντολές κτλ, μάλλον επειδή εκεί όλα γίνονται μεσω Gui του freebpx δλδ. Εδώ όμως συμφωνα και με το αρχικό ποστ του Νίκου είναι εντελώς διαφορετικό και προφανώς δεν αντιλαμβάνεται σωστά τις εντολές ο asterisk και είναι σαν να μην έχω dial plan! αύριο θα φτιάξω δικό μου αρχείο σύμφωνα με το αρχικο ποστ και θα δούμε, όλα τα άλλα confs είναι οκ πάντως, το dial plan δεν μου δουλεύει τώρα.
register κάνουν κανονικά τα πάντα! τηλέφωνα δεν παίρνουν και δεν δέχονται επειδή είναι λάθος το extensions.conf και δεν παίζει το dial plan. Τα registrations είναι από το sip.conf και είναι μια χαρά! όπως φαίνεται και εδώ :

OpenWrt*CLI> sip show peers

Name/username Host Dyn Nat ACL Port Status
101/101 10.2.237.6 D 5060 OK (8 ms)
102/102 10.71.99.2 D 5061 OK (89 ms) 
110/110 10.2.237.2 D 5060 OK (11 ms)
GSM/GSM 10.2.237.18 5062 UNREACHABLE (ΕΙΝΑΙ ΚΛΕΙΣΤΟ ΤΟ SPA no 2 το οποίο είναι συνδεδεμενο με ενα GSM gateway ericsson G30 με κάρτα SIM κινητού)
awmn126331/126331 10.21.124.60 5060 OK (19 ms)
spa3102 10.2.237.2 5061 OK (5 ms)
6 sip peers [Monitored: 4 online, 2 offline Unmonitored: 0 online, 0 offline]

----------


## Nikiforos

Σήμερα κατάφερα να καλεί αλλά και να με καλούν μέσω του awmn με το sip.awmn δλδ. Αλλά όμως δεν έχω ήχο δλδ δεν ακούω κάτι.

OpenWrt*CLI> sip show peers
Name/username Host Dyn Nat ACL Port Status 
101/101 10.2.237.6 D 5060 OK (1 ms) 
102/102 10.71.99.2 D 5061 OK (21 ms) 
103/103 10.2.237.13 D 5060 OK (58 ms) 
110/110 10.2.237.2 D 5060 OK (11 ms) 
awmn/126331 10.21.124.60 D 5060 OK (55 ms) 
5 sip peers [Monitored: 5 online, 0 offline Unmonitored: 0 online, 0 offline]

Το error που δειχνει οσο μιλάω είναι αυτό : [Mar 10 17:45:01] WARNING[7913]: chan_sip.c:6276 sip_write: Asked to transmit frame type 8, while native formats is 0x4 (ulaw)(4) read/write = 0x8 (alaw)( :: /0x8 (alaw)( :: 
καμιά ιδέα κανείς ???

----------


## B52

Ανεβασε εδω το extensions.conf και το sip.conf, τα errors που σου ΄πεταει΄ειναι θεμα codecs.

----------


## Nikiforos

Το extensions.conf

[general]
static=yes
writeprotect=yes
;autofallthrough=yes
;clearglobalvars=yes
;priorityjumping=no


;;edw toy leme otan dei pentapsifio kai exapsifio na paei apo awmn;
[awmn]
exten => _XXXXX,1,Dial(SIP/${EXTEN}@10.21.124.60,45,Rtj)
exten => _XXXXX,2,Playback(number-not-answering)
exten => _XXXXX,3,Hangup
exten => _XXXXX,102,Playback(the-number-u-dialed)
exten => _XXXXX,103,Playback(is-currently)
exten => _XXXXX,104,Playback(unavailable)
exten => _XXXXX,105,Hangup

exten => _XXXXXX,1,Dial(SIP/${EXTEN}@10.21.124.60,45,Rtj)
exten => _XXXXXX,2,Playback(number-not-answering)
exten => _XXXXXX,3,Hangup
exten => _XXXXXX,102,Playback(the-number-u-dialed)
exten => _XXXXXX,103,Playback(is-currently)
exten => _XXXXXX,104,Playback(unavailable)
exten => _XXXXXX,105,Hangup


;to 21_________ einai to noumero tis netone dld to stathero moy
;kai dipla leme na prowthithei h klisi sto 110 pou einai to SPA
[110]
;
; Incoming Internet calls.
; Ring SIP extensions.
;
exten => 21_______/_21XXXXXXXX,1,Dial(SIP/110,45,Rtj)
exten => 21_______/_21XXXXXXXX,2,Playback(number-not-answering)
exten => 21_______/_21XXXXXXXX,3,Hangup
exten => 21_______/_21XXXXXXXX,102,Playback(the-number-u-dialed)
exten => 21_______/_21XXXXXXXX,103,Playback(is-currently)
exten => 21_______/_21XXXXXXXX,104,Playback(unavailable)
exten => 21_______/_21XXXXXXXX,105,Hangup
; Outgoing calls.
; Every 10 digit number is passed to spa3102 peer.
;

exten => _XXXXXXXXXX/_11X,1,Dial(SIP/${EXTEN}@110,45,Rtj)
exten => _XXXXXXXXXX/_11X,2,Playback(number-not-answering)
exten => _XXXXXXXXXX/_11X,3,Hangup
exten => _XXXXXXXXXX/_11X,102,Playback(the-number-u-dialed)
exten => _XXXXXXXXXX/_11X,103,Playback(is-currently)
exten => _XXXXXXXXXX/_11X,104,Playback(unavailable)
exten => _XXXXXXXXXX/_11X,105,Hangup

; Incoming for real number
exten => XXXXXXXXXX,1,Dial(SIP/110,45,Rtj)
exten => XXXXXXXXXX,n,Playback(number-not-answering)
exten => XXXXXXXXXX,n,Hangup
exten => XXXXXXXXXX,n+101,Playback(the-number-u-dialed)
exten => XXXXXXXXXX,n+102,Playback(is-currently)
exten => XXXXXXXXXX,n+103,Playback(unavailable)
exten => XXXXXXXXXX,n+104,Hangup

[internal]
;spa 3102
exten => 110,1,Dial(SIP/110,45,Rtj)
exten => 110,2,Playback(number-not-answering)
exten => 110,3,Hangup
exten => 110,102,Playback(the-number-u-dialed)
exten => 110,103,Playback(is-currently)
exten => 110,104,Playback(unavailable)
exten => 110,105,Hangup

;nikiforos-desktop
exten => 101,1,Dial(SIP/101,45,Rtj)
exten => 101,2,Playback(number-not-answering)
exten => 101,3,Hangup
exten => 101,102,Playback(the-number-u-dialed)
exten => 101,103,Playback(is-currently)
exten => 101,104,Playback(unavailable)
exten => 101,105,Hangup

;exoxiko
exten => 102,1,Dial(SIP/102,45,Rtj)
exten => 102,2,Playback(number-not-answering)
exten => 102,3,Hangup
exten => 102,102,Playback(the-number-u-dialed)
exten => 102,103,Playback(is-currently)
exten => 102,104,Playback(unavailable)
exten => 102,105,Hangup

;Iphone
exten => 103,1,Dial(SIP/103,45,Rtj)
exten => 103,2,Playback(number-not-answering)
exten => 103,3,Hangup
exten => 103,102,Playback(the-number-u-dialed)
exten => 103,103,Playback(is-currently)
exten => 103,104,Playback(unavailable)
exten => 103,105,Hangup

[local]
include => parkedcalls
include => internal
include => awmn

[globals]
;CONSOLE=Console/dsp ; Console interface for demo
;CONSOLE=Zap/1
;CONSOLE=Phone/phone0
;SpeakingClock=00141

[default]
; Or a conference room (you'll need to edit meetme.conf to enable this room)
;exten => 51030,1,Meetme(51030|M)

include => local

;Dialplans for registered users
;
;Internal calls 
[internal-network]
include => default
include => internal
include => awmn

;External calls 
;
[external-nikiforos]
include => default
include => internal
include => 110
include => awmn

;[iax]
;include => default
;include => internal
;include => awmn

Εκεί που ειναι οι παύλες δλδ το 21__________ ειναι το σταθερο μου νούμερο που πέφτει επάνω στο SPA 3102 (110) δλδ.

----------


## Nikiforos

και το SIP.CONF έπαιξα με τους codecs εδώ αλλά τίποτα, ενώ τα εσωτερικά νούμερα παίζουν όλα μια χαρά μεταξύ τους! εντωμεταξύ δεν μπορώ να δεχτώ κλήσεις στο σταθερο μου, ουτε και να πάρω εγω! αν ξέρει κανεις τι έχω λαθος, γιατι γνωρίζω μονο απο trixbox και εδώ δεν έχει σχέση με το δικό του extensions.conf

[general]
port=5060 ; Port to bind to (SIP is 5060)
bindaddr =10.2.237.14 ;ι pou trexei o asterisk
useragent=Nikiforos [nikiforos] #11-PBX*
nat=no
context=default
disallow=all
;allow=ilbc
allow=alaw
allow=ulaw
;allow=g729
;allow=gsm
;allow=all
;externip=77.xx.xxx.xx
;localnet=10.2.237.0/27 
;srvlookup=yes 

register => [email protected]/126331

[awmn]
type=peer
context=awmn
host=10.21.124.60
qualify=300
canreinvite=yes
;context=defaut
disallow=all
allow=ulaw
allow=alaw
;allow=g726
;allow=g729
;allow=gsm

[110]
type=friend
secret=xxxxx
username=110
host=dynamic
canreinvite=yes
context=external-nikiforos
callerid=spa 3102<110>
qualify=yes
nat=no

[101]
type=friend
secret=xxxxx
username=101
host=dynamic
canreinvite=yes
context=external-nikiforos
callerid=Desktop<101>
qualify=yes
nat=no

[102]
type=friend
secret=xxxx
username=102
host=dynamic
canreinvite=yes
context=external-nikiforos
callerid=Exoxiko<102>
qualify=yes
nat=no

[103]
type=friend
secret=xxxx
username=103
host=dynamic
canreinvite=yes
context=external-nikiforos
callerid=Iphone<103>
qualify=yes
nat=no

----------


## B52

Το extensions.conf σου οπως πρεπει να ειναι.... 

[general]
static=yes
writeprotect=yes
;autofallthrough=yes
;clearglobalvars=yes
priorityjumping=yes ; basiko otan thes na pas se epomeno priority 1 -> 102

[macro-call]
exten => s,1,Dial(${ARG1},80,Tt)
exten => s,n,wait(1)
exten => s,n,Playtones(busy)
exten => s,n,Hangup


; Oti xekinaei me to prothema 5 kai osa psifia meta paei awmn.....
[awmn]
exten => _5X.,1,Dial(SIP/${EXTEN:1}@10.21.124.60,45,Tt)
exten => _5X.,n,busy(10)

; Outgoing calls.
; Every number 012689 is passed to spa3102 peer.
;
[out]
exten => _[012689]X./_11X,1,Dial(SIP/${EXTEN}@110,45,Tt)
exten => _[012689]X./_11X,n,busy(10)

[internal]
exten => 101,1,macro(call,sip/101)
exten => 102,1,macro(call,sip/102)
exten => 103,1,macro(call,sip/103)

include => awmn
include => out

[netone-in]
exten => 21______,1,dial(sip/110,80,Ttr)

Στο sip.conf και στο peer της Netone το context να ειναι netone-in....
δεν χρειαζεσε peer για το awmn.... εφοσον δηλωνεις sip server με IP στο extensions.conf.
Το μονο που χρειαζεσε ειναι να κανεις τα νουμερα σου register στο awmn...

Peer θες στον καινουργιο opensips server με τα 54XXXXXXXXX

αυτα...

----------


## Nikiforos

ευχαριστώ για την απάντηση! και αυτά θα παίξουν όπως έχω τώρα το sip.conf ?

----------


## B52

> ευχαριστώ για την απάντηση! και αυτά θα παίξουν όπως έχω τώρα το sip.conf ?


Σχετικο... θελει μερικες λεπτομερειες ακομα, οπως για παραδειγμα το peer του SPA της netone και δεν ξερω ακομα τι αλλα trunk εχεις...

----------


## Nikiforos

Για την ιστορία επιτέλους thanks to B52 παίζει μια χαρά ο asterisk! Τώρα μας μένει να δούμε όταν μπει στην ταράτσα το rspro αν παίζει καλά και με 3 ενεργά bb links  ::

----------


## NetTraptor

Δηλαδή όταν βρέχει-φυσάει ή άμα σκάσει κλασικά κανένα τροφοδοτικό ή καμιά Lan η θες κάνεις ένα reboot ρε αδερφέ θα μένεις χωρίς τηλέφωνο? Χμμμμ
Γιατί πρέπει να δοκιμάζουμε τα πάντα για να μάθουμε αυτά που ξέρουμε. 

Άλλο ο router και άλλο οι server. 

Πάντως όπως και να χει να σου ζήσει το πειραματόζωο. Έστω και έτσι ... ::

----------


## Nikiforos

Τα VOIP του awmn παίζουν και με απλούς sip clients (πχ από το iphone), στο σταθερό έχω 2 γραμμές (η μια που παίζει με το κέντρο) την δουλεύω μονο εγώ, οποτε και να χαλάσει έχουμε και κινητό και η υπόλοιπη familia παίζει με την 2η γραμμή πάντα που έτσι κι αλλιώς παίζει. Και τα εσωτερικά νούμερα είναι χρήσιμα μονο για το εξοχικό. Και για μην ξεχνιόμαστε θα υπάρχει backup pc με trixbox και virtualbox στον desktop με trixbox αλλά και openwrt με asterisk πάλι. Οπότε όπως κατάλαβες δεν υπάρχει καμιά περίπτωση να μου λείψουν τα τηλ ότι και να γίνει με το taratso router! απλά αυτό που με ενδιαφέρει εμένα είναι να μην έχω ένα αλλο pc 24ωρες ανοιχτό μόνο για asterisk! γιατι και τώρα όταν το χρειάζομαι το ανοίγω μόνο! ενώ μετά θα είναι 24ωρες ανοιχτό έτσι κι αλλιώς! btw για rspro μιλάμε που σκοπεύω να πάρω.

ΑΑΑ! ξέχασα! έχω 3 προβλήματα στον asterisk, ενώ στο trixbox όλα καλά, στον asterisk 1ον δεν έχω αναγνώριση κλήσεων στο τηλ που είναι επάνω στο SPA, 2ον δεν παίζει το sip.awmn σωστά και 3ον δεν παίζει ουτε και το voip.awmn. Παλεύω να τα φτιάξω, τι να κάνω θα μάθω κάποια στιγμή τον asterisk!  :: Pppp

----------


## NetTraptor

Configs... Drop the configs  ::

----------


## Nikiforos

Τι εννοείς? θες να δεις τα config files?

----------


## Nikiforos

Στο θέμα της αναγνώρισης κλήσεων, ενώ ότι συνδεεται στον αστερισκ δλδ από υπολογιστές, κινητό, ακόμα και το PAP2 με ασύρματο τηλέφωνο έχουν κανονικά αναγνώριση κλήσεων, στο ασύρματο τηλέφωνο που είναι επάνω στο SPA δεν βγάζει! το ίδιο και μέσα στον asterisk, το error που βγάζει εκεί είναι αυτό :
[Mar 18 17:52:15] WARNING[1099] app_dial.c: Unable to create channel of type 'sip' (cause 20 - Unknown)
έψαξα για ώρα σε forums αλλά δεν κατάφερα να βρω την λύση, έχει κανείς καμια ιδέα τι μπορεί να είναι? να πω πως από το SPA δεν είναι κάτι γιατί αν κλείσω τον αστερισκ ή παίζω με το trixbox έχω κανονικά αναγνωριση κλήσεων επάνω στο τηλέφωνο του SPA. Στo θέμα με το voip/sip του awmn, εχω να κάνω μερικές δοκιμές ακόμα αλλά δεν με καίει και τόσο.

EDIT : Το θέμα της αναγνώρισης λύθηκε χτες, έφταιγαν ρυθμίσεις (σχετικές με internet και nat) στο [general] του sip.conf
Τώρα προσπαθώ να φτιάξω τα VOIP του awmn.

----------


## Nikiforos

Μήπως έχει κανείς ιδεα γιατι αμα παίρνω στα voip του awmn αντί να δείχνει το νούμερο από εκει που καλώ δλδ το νούμερο του voip μου δείχνει το extention του εσωτερικου μου? πχ αν καλέσω λέμε τωρα το 5410ΧΧΧΧ ο αλλος αντι να δει το δικό μου 5410ΧΧΧΧ βλέπει 110, 102 κτλ. LOL!!! αυτή η λεπτομέρεια μου έμεινε μόνο και παίζουν όλα κομπλέ! άντε να το δοκιμάσουμε με το καλό και επάνω σε rspro! προς το παρον παιζει σε Virtualbox που τρέχει openwrt επάνω σε debian testing και σε ενα παλιο pc pentium III 1000mhz 512mb ram με κάρτα CF 256mb με openwrt backfire 10.03. Οπότε trixbox τέλος για μένα!

----------


## quam

Λοιπόν έχουμε και λέμε ...

έστω ότι έχεις 10 εσωτερικά με τριψήφιους αριθμούς, από το 100 έως και το 109, τα οποία όταν καλούν awmn θέλουμε να εμφανίζονται στους καλούμενους ώς 54100ΧΧΧΧ[0-9], όπου ΧΧΧΧ είναι το node id.

Στο extension.conf και συγκεκριμένα στο σχετικό context γράφουμε στην αρχή τα ακόλουθα :




> [awmn]
> exten => _54XXXXXXXX,1,GotoIf($[ "${CALLERID(num):0:2}" = "10" ]?sp1:sp2) ; Check if caller id starts with 10
> exten => _54XXXXXXXX,2(sp1),Set(CALLERID(all)=<54100ΧΧΧΧ${CALLERID(num):2:3}>) ; Set outbound CallerID, adding the prefix 54100XXXX before the last digit of extension.
> exten => _54XXXXXXXX,3(sp2),Dial(SIP/${EXTEN}@awmn-trunk,50,T,t)
> .
> .
> .


Δεν το έχω δοκιμάσει αλλά πρέπει να είναι ΟΚ.

----------


## Nikiforos

Thanks! θα το δοκιμάσω! πάντως αν παίρνω κλήσεις από το σταθερό δλδ μέσω του SPA παίζει κανονικά στον άλλον η αναγνώριση, μόνο στα 2 Voip του awmn έχω αυτό το πρόβλημα.

----------


## Nikiforos

quam δυστυχώς δεν πιάνει αυτό, συγκεκριμένα μου κάνουν μετά αυτά τα νούμερα πως είναι κατελλημένα! όμως δεν έχω κάτι τέτοιο με callerid macros για το σταθερό μου και τα εσωτερικά νούμερα και εκεί είναι οκ η αναγνὼριση, μήπως μπορεί να δίνει δουλειά και κάπως διαφορετικά?

----------


## quam

Για στείλε μου το extensions.conf και το context του voip.awmn από το sip.conf.

----------


## Nikiforos

Καλημέρα! Θα στα στείλω το απόγευμα! Thanks!

----------


## quam

Δεν καταλαβαίνω γιατί θες να καλείς μόνο όσους ξεκινάει ο old style αριθμός τους από 8 ....
Anyway, τώρα πρέπει να είναι όπως ακριβώς το θες.

----------


## Nikiforos

Τα δοκίμασα όλα thanks! βασικά δεν πρέπει να ασχολούμαι με τα 5ψηφια έτσι κι αλλιώς ποτέ δεν παίζουν σωστά σε μένα. Αλήθεια αν έχουμε το 5410ΧΧΧΧΧΧ, καλούμε και τα 5ψηφια έτσι δεν είναι? Τώρα όπως ήδη είπα έχει κολήσει στο sip.awmn να βλέπει την παλιά ip του asterisk (τότε δλδ που έτρεχε από virtualbox) και από τότε που τον έβαλα στο Rspro και έχει άλλη ip δεν παίζουν τα 5ψηφια ακόμα και αν κάνω register από sip clients (iphone, laptop με το twinkle), ενώ το 10ψηφιο είναι οκ.

----------


## quam

Με το 5410ΧΧΧΧΧΧ δεν καλείς 5 ψήφια αλλά 10 ψήφια που αρχίζουν με 5410, στό είχα και ως comment στο conf αλλά νομίζω πως τα έχεις μπερδεμένα.

Νικηφόρε στο pm σου εξηγώ κάποια πράγματα.
Καλή τύχη

----------


## Nikiforos

Τελικά μετά από άπειρες δοκιμές μου φαίνεται πως είναι καλυτερα τα voip να τα δουλευω από τον sip client του iphone απευθείας και όχι μέσω asterisk. Και κυρίως γιατί όταν είμαι εξοχικό που εκει μιλάω αρκετά, πρέπει από εκει να φτάσω Αθήνα στον κόμβο μου και στον αστερισκ και από εκει να πάει η δρομολόγηση προς τα voip οποτε κανουμε τον γύρω της Αθήνας με αποτέλεσμα καθυστερησεις και διακοπές στην ομιλία. Ενώ αν συνδεθώ απο εκει πάει από διαφορετική δρομολόγηση με καλύτερα αποτελέσματα φυσικά. Ετσι θα λυθούν και όλα τα προβλήματα καθώς μόνο με τα voip υπάρχουν και με τπτ άλλο. Αυτό που είπα το είπα ανάποδα πριν, ήθελα να πω πως από 5ψηφια μας καλουνε στο 10ψηφιο! το αναποδο όχι δεν γίνεται. Ευχαριστώ για την βοήθεια πάντως quam, χρήσιμα αυτά που έμαθα πάλι  ::

----------

