![]() |
Home page |
Mailing list |
Docs
Asterisk developer's documentation :: Codename Pineapple
chan_sip.c File Reference
SIP over TLS
Better support of forking
VIA branch tag transaction checking
Transaction support
A new INVITE is sent to handle_request_invite(), that will end up starting a new channel in the PBX, the new channel after that executing in a separate channel thread. This is an incoming "call". When the call is answered, either by a bridged channel or the PBX itself the sip_answer() function is called.
The actual media - Video or Audio - is mostly handled by the RTP subsystem in rtp.c
Definition in file chan_sip.c.
#include "asterisk.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <errno.h>
#include <stdlib.h>
#include <fcntl.h>
#include <netdb.h>
#include <signal.h>
#include <sys/signal.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <arpa/inet.h>
#include <netinet/ip.h>
#include <regex.h>
#include "asterisk/lock.h"
#include "asterisk/channel.h"
#include "asterisk/config.h"
#include "asterisk/logger.h"
#include "asterisk/module.h"
#include "asterisk/pbx.h"
#include "asterisk/options.h"
#include "asterisk/sched.h"
#include "asterisk/io.h"
#include "asterisk/rtp.h"
#include "asterisk/udptl.h"
#include "asterisk/acl.h"
#include "asterisk/manager.h"
#include "asterisk/callerid.h"
#include "asterisk/cli.h"
#include "asterisk/app.h"
#include "asterisk/musiconhold.h"
#include "asterisk/dsp.h"
#include "asterisk/features.h"
#include "asterisk/srv.h"
#include "asterisk/astdb.h"
#include "asterisk/causes.h"
#include "asterisk/utils.h"
#include "asterisk/file.h"
#include "asterisk/astobj.h"
#include "asterisk/dnsmgr.h"
#include "asterisk/devicestate.h"
#include "asterisk/linkedlists.h"
#include "asterisk/stringfields.h"
#include "asterisk/monitor.h"
#include "asterisk/localtime.h"
#include "asterisk/abstract_jb.h"
#include "asterisk/compiler.h"
#include "asterisk/threadstorage.h"
#include "asterisk/translate.h"
#include "asterisk/version.h"
Include dependency graph for chan_sip.c:

Go to the source code of this file.
Data Structures | |
| struct | ast_peer_list |
| The peer list: Peers and Friends. More... | |
| struct | ast_register_list |
| The register list: Other SIP proxies we register with and place calls to. More... | |
| struct | ast_user_list |
| The user list: Users and friends. More... | |
| struct | c_referstatusstring |
| Table to convert from REFER status variable to string. More... | |
| struct | cfsip_methods |
| Structure for parsing of SIP methods. More... | |
| struct | cfsip_options |
| List of well-known SIP options. If we get this in a require, we should check the list and answer accordingly. More... | |
| struct | cfsubscription_types |
| Description of SUBSCRIBE events. More... | |
| struct | domain |
| Domain data structure. More... | |
| struct | sip_auth |
| sip_auth: Credentials for authentication to other SIP services More... | |
| struct | sip_dual |
| structure used in transfers More... | |
| struct | sip_history |
| sip_history: Structure for saving transactions within a SIP dialog More... | |
| struct | sip_invite_param |
| Parameters to the transmit_invite function. More... | |
| struct | sip_peer |
| Structure for SIP peer data, we place calls to peers if registered or fixed IP address (host). More... | |
| struct | sip_pkt |
| sip packet - raw format for outbound packets that are sent or scheduled for transmission More... | |
| struct | sip_pvt |
| sip_pvt: PVT structures are used for each SIP dialog, ie. a call, a registration, a subscribe More... | |
| struct | sip_refer |
| Structure to handle SIP transfers. Dynamically allocated when needed. More... | |
| struct | sip_registry |
| Registrations with other SIP proxies. More... | |
| struct | sip_request |
| sip_request: The data grabbed from the UDP socket More... | |
| struct | sip_route |
| Structure to save routing information for a SIP session. More... | |
| struct | sip_user |
| Structure for SIP user data. User's place calls to us. More... | |
| struct | t38properties |
| T.38 channel settings (at some point we need to make this alloc'ed. More... | |
Defines | |
| #define | ALLOWED_METHODS "INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY" |
| SIP Methods we support. | |
| #define | append_history(p, event, fmt, args...) append_history_full(p, "%-15s " fmt, event, ## args) |
| Append to SIP dialog history. | |
| #define | CALLERID_UNKNOWN "Unknown" |
| #define | DEC_CALL_LIMIT 0 |
| #define | DEC_CALL_RINGING 2 |
| #define | DEFAULT_ALLOW_EXT_DOM TRUE |
| #define | DEFAULT_ALLOWGUEST TRUE |
| #define | DEFAULT_AUTOCREATEPEER FALSE |
| #define | DEFAULT_CALLERID "asterisk" |
| #define | DEFAULT_COMPACTHEADERS FALSE |
| #define | DEFAULT_CONTEXT "default" |
| #define | DEFAULT_DEFAULT_EXPIRY 120 |
| #define | DEFAULT_EXPIRY 900 |
| #define | DEFAULT_FREQ_NOTOK 10 * 1000 |
| #define | DEFAULT_FREQ_OK 60 * 1000 |
| #define | DEFAULT_MAX_CALL_BITRATE (384) |
| #define | DEFAULT_MAX_EXPIRY 3600 |
| #define | DEFAULT_MAX_FORWARDS "70" |
| #define | DEFAULT_MAXMS 2000 |
| #define | DEFAULT_MIN_EXPIRY 60 |
| #define | DEFAULT_MOHINTERPRET "default" |
| #define | DEFAULT_MOHSUGGEST "" |
| #define | DEFAULT_MWITIME 10 |
| #define | DEFAULT_NOTIFYMIME "application/simple-message-summary" |
| #define | DEFAULT_NOTIFYRINGING TRUE |
| #define | DEFAULT_PEDANTIC FALSE |
| #define | DEFAULT_QUALIFY FALSE |
| #define | DEFAULT_REALM "asterisk" |
| #define | DEFAULT_REGISTRATION_TIMEOUT 20 |
| #define | DEFAULT_RETRANS 1000 |
| #define | DEFAULT_SRVLOOKUP FALSE |
| #define | DEFAULT_T1MIN 100 |
| #define | DEFAULT_TOS_AUDIO 0 |
| #define | DEFAULT_TOS_SIP 0 |
| #define | DEFAULT_TOS_VIDEO 0 |
| #define | DEFAULT_TRANS_TIMEOUT -1 |
| #define | DEFAULT_USERAGENT "Asterisk PBX" |
| #define | DEFAULT_VMEXTEN "asterisk" |
| #define | EXPIRY_GUARD_LIMIT 30 |
| #define | EXPIRY_GUARD_MIN 500 |
| #define | EXPIRY_GUARD_PCT 0.20 |
| #define | EXPIRY_GUARD_SECS 15 |
| #define | FALSE 0 |
| #define | FLAG_FATAL (1 << 1) |
| #define | FLAG_RESPONSE (1 << 0) |
| #define | FORMAT "%-15.15s %-10.10s %-11.11s %5.5d/%5.5d %-4.4s %-3.3s %-3.3s %-15.15s %-10.10s\n" |
| #define | FORMAT "%-30.30s %-12.12s %8d %-20.20s %-25.25s\n" |
| #define | FORMAT "%-40.40s %-20.20s %-16.16s\n" |
| #define | FORMAT "%-25.25s %-15.15s %-3.3s %-3.3s %-3.3s %-8d %-10s %-10s\n" |
| #define | FORMAT "%-25.25s %-15.15s %-15.15s %-15.15s %-5.5s%-10.10s\n" |
| #define | FORMAT "%-25.25s %-15.15s %-15.15s \n" |
| #define | FORMAT2 "%-15.15s %-10.10s %-11.11s %-11.11s %-4.4s %-7.7s %-15.15s\n" |
| #define | FORMAT2 "%-30.30s %-12.12s %8.8s %-20.20s %-25.25s\n" |
| #define | FORMAT2 "%-25.25s %-15.15s %-3.3s %-3.3s %-3.3s %-8s %-10s %-10s\n" |
| #define | FORMAT2 "%-25.25s %-15.15s %-15.15s \n" |
| #define | FORMAT3 "%-15.15s %-10.10s %-11.11s %-15.15s %-13.13s %-15.15s %-10.10s\n" |
| #define | INC_CALL_LIMIT 1 |
| #define | INC_CALL_RINGING 3 |
| #define | INITIAL_CSEQ 101 |
| #define | IPTOS_MINCOST 0x02 |
| #define | MAX(a, b) ((a) > (b) ? (a) : (b)) |
| #define | MAX_AUTHTRIES 3 |
| #define | MAX_RETRANS 6 |
| #define | NO_RTP 0 |
| #define | NOT_SUPPORTED 0 |
| #define | RTP 1 |
| #define | SDP_SAMPLE_RATE(x) (x == AST_FORMAT_G722) ? 16000 : 8000 |
| #define | SIP_ALREADYGONE (1 << 0) |
| #define | SIP_CALL_LIMIT (1 << 28) |
| #define | SIP_CAN_REINVITE (1 << 20) |
| #define | SIP_CAN_REINVITE_NAT (2 << 20) |
| #define | SIP_DEFER_BYE_ON_TRANSFER (1 << 15) |
| #define | SIP_DTMF (3 << 16) |
| #define | SIP_DTMF_AUTO (3 << 16) |
| #define | SIP_DTMF_INBAND (1 << 16) |
| #define | SIP_DTMF_INFO (2 << 16) |
| #define | SIP_DTMF_RFC2833 (0 << 16) |
| #define | SIP_FLAGS_TO_COPY |
| #define | SIP_FREE_BIT (1 << 14) |
| #define | SIP_G726_NONSTANDARD (1 << 31) |
| #define | SIP_GOTREFER (1 << 7) |
| #define | SIP_INC_COUNT (1 << 30) |
| #define | SIP_INSECURE_INVITE (1 << 24) |
| #define | SIP_INSECURE_PORT (1 << 23) |
| #define | SIP_MAX_HEADERS 64 |
| #define | SIP_MAX_LINES 64 |
| #define | SIP_MAX_PACKET 4096 |
| #define | SIP_NAT (3 << 18) |
| #define | SIP_NAT_ALWAYS (3 << 18) |
| #define | SIP_NAT_NEVER (0 << 18) |
| #define | SIP_NAT_RFC3581 (1 << 18) |
| #define | SIP_NAT_ROUTE (2 << 18) |
| #define | SIP_NEEDDESTROY (1 << 1) |
| #define | SIP_NEEDREINVITE (1 << 5) |
| #define | SIP_NO_HISTORY (1 << 27) |
| #define | SIP_NOVIDEO (1 << 2) |
| #define | SIP_OPT_100REL (1 << 1) |
| #define | SIP_OPT_EARLY_SESSION (1 << 3) |
| #define | SIP_OPT_EVENTLIST (1 << 11) |
| #define | SIP_OPT_GRUU (1 << 12) |
| #define | SIP_OPT_HISTINFO (1 << 15) |
| #define | SIP_OPT_JOIN (1 << 4) |
| #define | SIP_OPT_NOREFERSUB (1 << 14) |
| #define | SIP_OPT_PATH (1 << 5) |
| #define | SIP_OPT_PRECONDITION (1 << 7) |
| #define | SIP_OPT_PREF (1 << 6) |
| #define | SIP_OPT_PRIVACY (1 << 8) |
| #define | SIP_OPT_REPLACES (1 << 0) |
| #define | SIP_OPT_RESPRIORITY (1 << 16) |
| #define | SIP_OPT_SDP_ANAT (1 << 9) |
| #define | SIP_OPT_SEC_AGREE (1 << 10) |
| #define | SIP_OPT_TARGET_DIALOG (1 << 13) |
| #define | SIP_OPT_TIMER (1 << 2) |
| #define | SIP_OUTGOING (1 << 13) |
| #define | SIP_PAGE2_ALLOWOVERLAP (1 << 17) |
| #define | SIP_PAGE2_ALLOWSUBSCRIBE (1 << 16) |
| #define | SIP_PAGE2_BUGGY_MWI (1 << 26) |
| #define | SIP_PAGE2_CALL_ONHOLD (3 << 23) |
| #define | SIP_PAGE2_CALL_ONHOLD_INACTIVE (1 << 24) |
| #define | SIP_PAGE2_CALL_ONHOLD_ONEDIR (1 << 23) |
| #define | SIP_PAGE2_DEBUG (3 << 11) |
| #define | SIP_PAGE2_DEBUG_CONFIG (1 << 11) |
| #define | SIP_PAGE2_DEBUG_CONSOLE (1 << 12) |
| #define | SIP_PAGE2_DYNAMIC (1 << 13) |
| #define | SIP_PAGE2_FLAGS_TO_COPY |
| #define | SIP_PAGE2_IGNOREREGEXPIRE (1 << 10) |
| #define | SIP_PAGE2_INC_RINGING (1 << 19) |
| #define | SIP_PAGE2_RFC2833_COMPENSATE (1 << 25) |
| #define | SIP_PAGE2_RT_FROMCONTACT (1 << 4) |
| #define | SIP_PAGE2_RTAUTOCLEAR (1 << 2) |
| #define | SIP_PAGE2_RTCACHEFRIENDS (1 << 0) |
| #define | SIP_PAGE2_RTSAVE_SYSNAME (1 << 5) |
| #define | SIP_PAGE2_RTUPDATE (1 << 1) |
| #define | SIP_PAGE2_SELFDESTRUCT (1 << 14) |
| #define | SIP_PAGE2_SUBSCRIBEMWIONLY (1 << 18) |
| #define | SIP_PAGE2_T38SUPPORT (7 << 20) |
| #define | SIP_PAGE2_T38SUPPORT_RTP (2 << 20) |
| #define | SIP_PAGE2_T38SUPPORT_TCP (4 << 20) |
| #define | SIP_PAGE2_T38SUPPORT_UDPTL (1 << 20) |
| #define | SIP_PAGE2_VIDEOSUPPORT (1 << 15) |
| #define | SIP_PENDINGBYE (1 << 6) |
| #define | SIP_PKT_DEBUG (1 << 0) |
| #define | SIP_PKT_IGNORE (1 << 2) |
| #define | SIP_PKT_WITH_TOTAG (1 << 1) |
| #define | SIP_PROG_INBAND (3 << 25) |
| #define | SIP_PROG_INBAND_NEVER (0 << 25) |
| #define | SIP_PROG_INBAND_NO (1 << 25) |
| #define | SIP_PROG_INBAND_YES (2 << 25) |
| #define | SIP_PROGRESS_SENT (1 << 4) |
| #define | SIP_PROMISCREDIR (1 << 8) |
| #define | SIP_REALTIME (1 << 11) |
| #define | SIP_REINVITE (7 << 20) |
| #define | SIP_REINVITE_UPDATE (4 << 20) |
| #define | SIP_RINGING (1 << 3) |
| #define | SIP_SENDRPID (1 << 29) |
| #define | SIP_TIMER_T1 500 |
| #define | SIP_TRANS_TIMEOUT 32000 |
| #define | SIP_TRUSTRPID (1 << 9) |
| #define | SIP_USECLIENTCODE (1 << 12) |
| #define | SIP_USEREQPHONE (1 << 10) |
| #define | sipdebug ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG) |
| #define | sipdebug_config ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONFIG) |
| #define | sipdebug_console ast_test_flag(&global_flags[1], SIP_PAGE2_DEBUG_CONSOLE) |
| #define | STANDARD_SIP_PORT 5060 |
| Standard SIP port from RFC 3261. DO NOT CHANGE THIS. | |
| #define | SUPPORTED 1 |
| #define | SUPPORTED_EXTENSIONS "replaces" |
| SIP Extensions we support. | |
| #define | T38FAX_FILL_BIT_REMOVAL (1 << 0) |
| #define | T38FAX_RATE_12000 (1 << 12) |
| #define | T38FAX_RATE_14400 (1 << 13) |
| #define | T38FAX_RATE_2400 (1 << 8) |
| #define | T38FAX_RATE_4800 (1 << 9) |
| #define | T38FAX_RATE_7200 (1 << 10) |
| #define | T38FAX_RATE_9600 (1 << 11) |
| #define | T38FAX_RATE_MANAGEMENT_LOCAL_TCF (1 << 3) |
| #define | T38FAX_RATE_MANAGEMENT_TRANSFERED_TCF (0 << 3) |
| #define | T38FAX_TRANSCODING_JBIG (1 << 2) |
| #define | T38FAX_TRANSCODING_MMR (1 << 1) |
| #define | T38FAX_UDP_EC_FEC (1 << 4) |
| #define | T38FAX_UDP_EC_NONE (0 << 4) |
| #define | T38FAX_UDP_EC_REDUNDANCY (2 << 4) |
| #define | T38FAX_VERSION (3 << 6) |
| #define | T38FAX_VERSION_0 (0 << 6) |
| #define | T38FAX_VERSION_1 (1 << 6) |
| #define | TRUE 1 |
| #define | UNLINK(element, head, prev) |
| #define | VIDEO_CODEC_MASK 0x1fc0000 |
Enumerations | |
| enum | can_create_dialog { CAN_NOT_CREATE_DIALOG, CAN_CREATE_DIALOG, CAN_CREATE_DIALOG_UNSUPPORTED_METHOD } |
| enum | check_auth_result { AUTH_DONT_KNOW = -100, AUTH_SUCCESSFUL = 0, AUTH_CHALLENGE_SENT = 1, AUTH_SECRET_FAILED = -1, AUTH_USERNAME_MISMATCH = -2, AUTH_NOT_FOUND = -3, AUTH_FAKE_AUTH = -4, AUTH_UNKNOWN_DOMAIN = -5 } |
| Authentication result from check_auth* functions. More... | |
| enum | domain_mode { SIP_DOMAIN_AUTO, SIP_DOMAIN_CONFIG } |
| Modes for SIP domain handling in the PBX. More... | |
| enum | invitestates { INV_NONE = 0, INV_CALLING = 1, INV_PROCEEDING = 2, INV_EARLY_MEDIA = 3, INV_COMPLETED = 4, INV_CONFIRMED = 5, INV_TERMINATED = 6, INV_CANCELLED = 7 } |
| States for the INVITE transaction, not the dialog. More... | |
| enum | parse_register_result { PARSE_REGISTER_FAILED, PARSE_REGISTER_UPDATE, PARSE_REGISTER_QUERY } |
| enum | referstatus { REFER_IDLE, REFER_SENT, REFER_RECEIVED, REFER_CONFIRMED, REFER_ACCEPTED, REFER_RINGING, REFER_200OK, REFER_FAILED, REFER_NOAUTH } |
| Parameters to know status of transfer. More... | |
| enum | sip_auth_type { PROXY_AUTH = 407, WWW_AUTH = 401 } |
| Authentication types - proxy or www authentication. More... | |
| enum | sip_result { AST_SUCCESS = 0, AST_FAILURE = -1 } |
| enum | sipmethod { SIP_UNKNOWN, SIP_RESPONSE, SIP_REGISTER, SIP_OPTIONS, SIP_NOTIFY, SIP_INVITE, SIP_ACK, SIP_PRACK, SIP_BYE, SIP_REFER, SIP_SUBSCRIBE, SIP_MESSAGE, SIP_UPDATE, SIP_INFO, SIP_CANCEL, SIP_PUBLISH, SIP_PING } |
| SIP Request methods known by Asterisk. More... | |
| enum | sipregistrystate { REG_STATE_UNREGISTERED = 0, REG_STATE_REGSENT, REG_STATE_AUTHSENT, REG_STATE_REGISTERED, REG_STATE_REJECTED, REG_STATE_TIMEOUT, REG_STATE_NOAUTH, REG_STATE_FAILED } |
| States for outbound registrations (with register= lines in sip.conf. More... | |
| enum | subscriptiontype { NONE = 0, XPIDF_XML, DIALOG_INFO_XML, CPIM_PIDF_XML, PIDF_XML, MWI_NOTIFICATION } |
| enum | t38state { T38_DISABLED = 0, T38_LOCAL_DIRECT, T38_LOCAL_REINVITE, T38_PEER_DIRECT, T38_PEER_REINVITE, T38_ENABLED } |
| T38 States for a call. More... | |
| enum | transfermodes { TRANSFER_OPENFORALL, TRANSFER_CLOSED } |
| Authorization scheme for call transfers. More... | |
| enum | xmittype { XMIT_CRITICAL = 2, XMIT_RELIABLE = 1, XMIT_UNRELIABLE = 0 } |
Functions | |
| static const char * | __get_header (const struct sip_request *req, const char *name, int *start) |
| static void | __sip_ack (struct sip_pvt *p, int seqno, int resp, int sipmethod) |
| Acknowledges receipt of a packet and stops retransmission. | |
| static int | __sip_autodestruct (void *data) |
| Kill a SIP dialog (called by scheduler). | |
| static void | __sip_destroy (struct sip_pvt *p, int lockowner, int lockdialoglist) |
| Execute destruction of SIP dialog structure, release memory. | |
| static int | __sip_do_register (struct sip_registry *r) |
| Register with SIP proxy. | |
| static void | __sip_pretend_ack (struct sip_pvt *p) |
| Pretend to ack all packets maybe the lock on p is not strictly necessary but there might be a race. | |
| static int | __sip_reliable_xmit (struct sip_pvt *p, int seqno, int resp, char *data, int len, int fatal, int sipmethod) |
| Transmit packet with retransmits. | |
| static int | __sip_semi_ack (struct sip_pvt *p, int seqno, int resp, int sipmethod) |
| Acks receipt of packet, keep it around (used for provisional responses). | |
| static int | __sip_show_channels (int fd, int argc, char *argv[], int subscriptions) |
| SIP show channels CLI (main function). | |
| static int | __sip_xmit (struct sip_pvt *p, char *data, int len) |
| Transmit SIP message. | |
| static int | __transmit_response (struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable) |
| Base transmit response function. | |
| static int | _sip_show_peer (int type, int fd, struct mansession *s, const struct message *m, int argc, const char *argv[]) |
| Show one peer in detail (main function). | |
| static int | _sip_show_peers (int fd, int *total, struct mansession *s, const struct message *m, int argc, const char *argv[]) |
| _sip_show_peers: Execute sip show peers command | |
| static void | add_blank (struct sip_request *req) |
| add a blank line if no body | |
| static void | add_codec_to_sdp (const struct sip_pvt *p, int codec, int sample_rate, char **m_buf, size_t *m_size, char **a_buf, size_t *a_size, int debug, int *min_packet_size) |
| Add codec offer to SDP offer/answer body in INVITE or 200 OK. | |
| static int | add_digit (struct sip_request *req, char digit, unsigned int duration) |
| Add DTMF INFO tone to sip message. | |
| static int | add_header (struct sip_request *req, const char *var, const char *value) |
| Add header to SIP message. | |
| static int | add_header_contentLength (struct sip_request *req, int len) |
| Add 'Content-Length' header to SIP message. | |
| static int | add_line (struct sip_request *req, const char *line) |
| Add content (not header) to SIP message. | |
| static void | add_noncodec_to_sdp (const struct sip_pvt *p, int format, int sample_rate, char **m_buf, size_t *m_size, char **a_buf, size_t *a_size, int debug) |
| Add RFC 2833 DTMF offer to SDP. | |
| static struct sip_auth * | add_realm_authentication (struct sip_auth *authlist, char *configuration, int lineno) |
| Add realm authentication in list. | |
| static void | add_route (struct sip_request *req, struct sip_route *route) |
| Add route header into request per learned route. | |
| static enum sip_result | add_sdp (struct sip_request *resp, struct sip_pvt *p) |
| Add Session Description Protocol message. | |
| static int | add_sip_domain (const char *domain, const enum domain_mode mode, const char *context) |
| Add SIP domain to list of domains we are responsible for. | |
| static int | add_t38_sdp (struct sip_request *resp, struct sip_pvt *p) |
| Add T.38 Session Description Protocol message. | |
| static int | add_text (struct sip_request *req, const char *text) |
| Add text body to SIP message. | |
| static struct ast_variable * | add_var (const char *buf, struct ast_variable *list) |
| static int | add_vidupdate (struct sip_request *req) |
| add XML encoded media control with update | |
| static void | append_date (struct sip_request *req) |
| Append date to SIP message. | |
| static void | append_history_full (struct sip_pvt *p, const char *fmt,...) |
| Append to SIP dialog history with arg list. | |
| static void static void | append_history_va (struct sip_pvt *p, const char *fmt, va_list ap) |
| Append to SIP dialog history with arg list. | |
| AST_LIST_HEAD_NOLOCK (sip_history_head, sip_history) | |
| static | AST_LIST_HEAD_STATIC (domain_list, domain) |
| AST_MODULE_INFO (ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT,"Session Initiation Protocol (SIP)",.load=load_module,.unload=unload_module,.reload=reload,) | |
| AST_MUTEX_DEFINE_STATIC (dialoglock) | |
| Protect the SIP dialog list (of sip_pvt's). | |
| AST_MUTEX_DEFINE_STATIC (sip_reload_lock) | |
| AST_MUTEX_DEFINE_STATIC (monlock) | |
| Protect the monitoring thread, so only one process can kill or start it, and not when it's doing something critical. | |
| AST_MUTEX_DEFINE_STATIC (netlock) | |
| static void | ast_quiet_chan (struct ast_channel *chan) |
| Turn off generator data XXX Does this function belong in the SIP channel? | |
| static int | ast_sip_ouraddrfor (struct in_addr *them, struct in_addr *us) |
| NAT fix - decide which IP address to use for ASterisk server? | |
| AST_THREADSTORAGE_CUSTOM (ts_temp_pvt, temp_pvt_init, temp_pvt_cleanup) | |
| A per-thread temporary pvt structure. | |
| static int | attempt_transfer (struct sip_dual *transferer, struct sip_dual *target) |
| Attempt transfer of SIP call This fix for attended transfers on a local PBX. | |
| static void | auth_headers (enum sip_auth_type code, char **header, char **respheader) |
| return the request and response heade for a 401 or 407 code | |
| static int | auto_congest (void *nothing) |
| Scheduled congestion on a call. | |
| static void | build_callid_pvt (struct sip_pvt *pvt) |
| Build SIP Call-ID value for a non-REGISTER transaction. | |
| static void | build_callid_registry (struct sip_registry *reg, struct in_addr ourip, const char *fromdomain) |
| Build SIP Call-ID value for a REGISTER transaction. | |
| static void | build_contact (struct sip_pvt *p) |
| Build contact header - the contact header we send out. | |
| static struct sip_peer * | build_peer (const char *name, struct ast_variable *v, struct ast_variable *alt, int realtime) |
| Build peer from configuration (file or realtime static/dynamic). | |
| static int | build_reply_digest (struct sip_pvt *p, int method, char *digest, int digest_len) |
| Build reply digest. | |
| static void | build_route (struct sip_pvt *p, struct sip_request *req, int backwards) |
| Build route list from Record-Route header. | |
| static void | build_rpid (struct sip_pvt *p) |
| Build the Remote Party-ID & From using callingpres options. | |
| static struct sip_user * | build_user (const char *name, struct ast_variable *v, int realtime) |
| Initiate a SIP user structure from configuration (configuration or realtime). | |
| static void | build_via (struct sip_pvt *p) |
| Build a Via header for a request. | |
| static int | cb_extensionstate (char *context, char *exten, int state, void *data) |
| Callback for the devicestate notification (SUBSCRIBE) support subsystem. | |
| static enum check_auth_result | check_auth (struct sip_pvt *p, struct sip_request *req, const char *username, const char *secret, const char *md5secret, int sipmethod, char *uri, enum xmittype reliable, int ignore) |
| Check user authorization from peer definition Some actions, like REGISTER and INVITEs from peers require authentication (if peer have secret set). | |
| static enum check_auth_result | check_peer_ok (struct sip_pvt *p, char *of, struct sip_request *req, int sipmethod, struct sockaddr_in *sin, struct sip_peer **authpeer, enum xmittype reliable, char *rpid_num, char *calleridname, char *uri2) |
| Validate peer authentication. | |
| static void | check_pendings (struct sip_pvt *p) |
| Check pending actions on SIP call. | |
| static void | check_rtp_timeout (struct sip_pvt *dialog, time_t t) |
| helper function for the monitoring thread | |
| static int | check_sip_domain (const char *domain, char *context, size_t len) |
| check_sip_domain: Check if domain part of uri is local to our server | |
| static int | check_user (struct sip_pvt *p, struct sip_request *req, int sipmethod, char *uri, enum xmittype reliable, struct sockaddr_in *sin) |
| Find user If we get a match, this will add a reference pointer to the user object in ASTOBJ, that needs to be unreferenced. | |
| static enum check_auth_result | check_user_full (struct sip_pvt *p, struct sip_request *req, int sipmethod, char *uri, enum xmittype reliable, struct sockaddr_in *sin, struct sip_peer **authpeer) |
| Check if matching user or peer is defined Match user on From: user name and peer on IP/port This is used on first invite (not re-invites) and subscribe requests. | |
| static enum check_auth_result | check_user_ok (struct sip_pvt *p, char *of, struct sip_request *req, int sipmethod, struct sockaddr_in *sin, enum xmittype reliable, char *rpid_num, char *calleridname, char *uri2) |
| Validate user authentication. | |
| static void | check_via (struct sip_pvt *p, struct sip_request *req) |
| check Via: header for hostname, port and rport request/answer | |
| static void | cleanup_stale_contexts (char *new, char *old) |
| Destroy disused contexts between reloads Only used in reload_config so the code for regcontext doesn't get ugly. | |
| static int | clear_realm_authentication (struct sip_auth *authlist) |
| Clear realm authentication list (at reload). | |
| static void | clear_sip_domains (void) |
| Clear our domain list (at reload). | |
| static char * | complete_sip_debug_peer (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip debug peer' CLI. | |
| static char * | complete_sip_peer (const char *word, int state, int flags2) |
| Do completion on peer name. | |
| static char * | complete_sip_prune_realtime_peer (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip prune realtime peer' CLI. | |
| static char * | complete_sip_prune_realtime_user (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip prune realtime user' CLI. | |
| static char * | complete_sip_show_peer (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip show peer' CLI. | |
| static char * | complete_sip_show_user (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip show user' CLI. | |
| static char * | complete_sip_user (const char *word, int state, int flags2) |
| Do completion on user name. | |
| static char * | complete_sipch (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip show channel' CLI. | |
| static char * | complete_sipnotify (const char *line, const char *word, int pos, int state) |
| Support routine for 'sip notify' CLI. | |
| static int | copy_all_header (struct sip_request *req, const struct sip_request *orig, const char *field) |
| Copy all headers from one request to another. | |
| static int | copy_header (struct sip_request *req, const struct sip_request *orig, const char *field) |
| Copy one header field from one request to another. | |
| static void | copy_request (struct sip_request *dst, const struct sip_request *src) |
| copy SIP request (mostly used to save request for responses) | |
| static struct ast_variable * | copy_vars (struct ast_variable *src) |
| static int | copy_via_headers (struct sip_pvt *p, struct sip_request *req, const struct sip_request *orig, const char *field) |
| Copy SIP VIA Headers from the request to the response. | |
| static int | create_addr (struct sip_pvt *dialog, const char *opeer) |
| create address structure from peer name Or, if peer not found, find it in the global DNS returns TRUE (-1) on failure, FALSE on success | |
| static int | create_addr_from_peer (struct sip_pvt *dialog, struct sip_peer *peer) |
| Create address structure from peer reference. return -1 on error, 0 on success. | |
| static void | destroy_association (struct sip_peer *peer) |
| Remove registration data from realtime database or AST/DB when registration expires. | |
| static int | determine_firstline_parts (struct sip_request *req) |
| Parse first line of incoming SIP request. | |
| static void | dialoglist_lock (void) |
| hide the way the list is locked/unlocked | |
| static void | dialoglist_unlock (void) |
| static void * | do_monitor (void *data) |
| The SIP monitoring thread. | |
| static int | do_proxy_auth (struct sip_pvt *p, struct sip_request *req, enum sip_auth_type code, int sipmethod, int init) |
| Add authentication on outbound SIP packet. | |
| static int | do_register_auth (struct sip_pvt *p, struct sip_request *req, enum sip_auth_type code) |
| Authenticate for outbound registration. | |
| static void | do_setnat (struct sip_pvt *p, int natflags) |
| Set nat mode on the various data sockets. | |
| static int | does_peer_need_mwi (struct sip_peer *peer) |
| Check whether peer needs a new MWI notification check. | |
| static const char * | domain_mode_to_text (const enum domain_mode mode) |
| Print domain mode to cli. | |
| static const char * | dtmfmode2str (int mode) |
| Convert DTMF mode to printable string. | |
| static int | expire_register (void *data) |
| Expire registration of SIP peer. | |
| static void | extract_uri (struct sip_pvt *p, struct sip_request *req) |
| Check Contact: URI of SIP message. | |
| static const char * | find_alias (const char *name, const char *_default) |
| Find compressed SIP alias Structure for conversion between compressed SIP and "normal" SIP. | |
| static struct sip_pvt * | find_call (struct sip_request *req, struct sockaddr_in *sin, const int intended_method) |
| Connect incoming SIP message to current dialog or create new dialog structure Called by handle_request, sipsock_read. | |
| static const char * | find_closing_quote (const char *start, const char *lim) |
| Locate closing quote in a string, skipping escaped quotes. optionally with a limit on the search. start must be past the first quote. | |
| static struct sip_peer * | find_peer (const char *peer, struct sockaddr_in *sin, int realtime) |
| Locate peer by name or ip address This is used on incoming SIP message to find matching peer on ip or outgoing message to find matching peer on name. | |
| static struct sip_auth * | find_realm_authentication (struct sip_auth *authlist, const char *realm) |
| Find authentication for a specific realm. | |
| static int | find_sdp (struct sip_request *req) |
| Determine whether a SIP message contains an SDP in its body. | |
| static int | find_sip_method (const char *msg) |
| find_sip_method: Find SIP method from header | |
| static const struct cfsubscription_types * | find_subscription_type (enum subscriptiontype subtype) |
| Find subscription type in array. | |
| static struct sip_user * | find_user (const char *name, int realtime) |
| Locate user by name Locates user by name (From: sip uri user name part) first from in-memory list (static configuration) then from realtime storage (defined in extconfig.conf). | |
| static void | free_old_route (struct sip_route *route) |
| Remove route from route list. | |
| static int | func_check_sipdomain (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) |
| Dial plan function to check if domain is local. | |
| static int | func_header_read (struct ast_channel *chan, const char *function, char *data, char *buf, size_t len) |
| Read SIP header (dialplan function). | |
| static int | function_sipchaninfo_read (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) |
| ${SIPCHANINFO()} Dialplan function - reads sip channel data | |
| static int | function_sippeer (struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) |
| ${SIPPEER()} Dialplan function - reads peer data | |
| static char * | generate_random_string (char *buf, size_t size) |
| Generate 32 byte random string for callid's etc. | |
| static int | get_also_info (struct sip_pvt *p, struct sip_request *oreq) |
| Call transfer support (old way, deprecated by the IETF)--. | |
| static char * | get_body (struct sip_request *req, char *name) |
| Get a specific line from the message body. | |
| static char * | get_body_by_line (const char *line, const char *name, int nameLen) |
| Reads one line of SIP message body. | |
| static char * | get_calleridname (const char *input, char *output, size_t outputsize) |
| Get caller id name from SIP headers. | |
| static int | get_destination (struct sip_pvt *p, struct sip_request *oreq) |
| Find out who the call is for We use the INVITE uri to find out. | |
| static const char * | get_header (const struct sip_request *req, const char *name) |
| Get header from SIP request. | |
| static char * | get_in_brackets (char *tmp) |
| Pick out text in brackets from character string. | |
| static int | get_msg_text (char *buf, int len, struct sip_request *req) |
| Get text out of a SIP MESSAGE packet. | |
| static void | get_our_media_address (struct sip_pvt *p, int needvideo, struct sockaddr_in *sin, struct sockaddr_in *vsin, struct sockaddr_in *dest, struct sockaddr_in *vdest) |
| Set all IP media addresses for this call. | |
| static int | get_rdnis (struct sip_pvt *p, struct sip_request *oreq) |
| Get referring dnis. | |
| static int | get_refer_info (struct sip_pvt *transferer, struct sip_request *outgoing_req) |
| Call transfer support (the REFER method) Extracts Refer headers into pvt dialog structure. | |
| static int | get_rpid_num (const char *input, char *output, int maxlen) |
| Get caller id number from Remote-Party-ID header field Returns true if number should be restricted (privacy setting found) output is set to NULL if no number found. | |
| static const char * | get_sdp (struct sip_request *req, const char *name) |
| Get a line from an SDP message body. | |
| static const char * | get_sdp_iterate (int *start, struct sip_request *req, const char *name) |
| Lookup 'name' in the SDP starting at the 'start' line. Returns the matching line, and 'start' is updated with the next line number. | |
| static struct sip_pvt * | get_sip_pvt_byid_locked (const char *callid, const char *totag, const char *fromtag) |
Lock dialog lock and find matching pvt lock
| |
| static const char * | gettag (const struct sip_request *req, const char *header, char *tagbuf, int tagbufsize) |
| Get tag from packet. | |
| static int | handle_common_options (struct ast_flags *flags, struct ast_flags *mask, struct ast_variable *v) |
| Handle flag-type options common to configuration of devices - users and peers. | |
| static int | handle_invite_replaces (struct sip_pvt *p, struct sip_request *req, int debug, int ignore, int seqno, struct sockaddr_in *sin) |
| Handle the transfer part of INVITE with a replaces: header, meaning a target pickup or an attended transfer. | |
| static int | handle_request (struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, int *recount, int *nounlock) |
| Handle incoming SIP requests (methods). | |
| static int | handle_request_bye (struct sip_pvt *p, struct sip_request *req) |
| Handle incoming BYE request. | |
| static int | handle_request_cancel (struct sip_pvt *p, struct sip_request *req) |
| Handle incoming CANCEL request. | |
| static void | handle_request_info (struct sip_pvt *p, struct sip_request *req) |
| Receive SIP INFO Message. | |
| static int | handle_request_invite (struct sip_pvt *p, struct sip_request *req, int debug, int seqno, struct sockaddr_in *sin, int *recount, char *e) |
| Handle incoming INVITE request. | |
| static int | handle_request_message (struct sip_pvt *p, struct sip_request *req) |
| Handle incoming MESSAGE request. | |
| static int | handle_request_notify (struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, int seqno, char *e) |
| Handle incoming notifications. | |
| static int | handle_request_options (struct sip_pvt *p, struct sip_request *req) |
| Handle incoming OPTIONS request. | |
| static int | handle_request_refer (struct sip_pvt *p, struct sip_request *req, int debug, int seqno, int *nounlock) |
| static int | handle_request_register (struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, char *e) |
| Handle incoming REGISTER request. | |
| static int | handle_request_subscribe (struct sip_pvt *p, struct sip_request *req, struct sockaddr_in *sin, int seqno, char *e) |
| Handle incoming SUBSCRIBE request. | |
| static void | handle_response (struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int seqno) |
| Handle SIP response in dialogue. | |
| static void | handle_response_invite (struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int seqno) |
| Handle SIP response to INVITE dialogue. | |
| static void | handle_response_peerpoke (struct sip_pvt *p, int resp, struct sip_request *req) |
| Handle qualification responses (OPTIONS). | |
| static void | handle_response_refer (struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int seqno) |
| static int | handle_response_register (struct sip_pvt *p, int resp, char *rest, struct sip_request *req, int seqno) |
| Handle responses on REGISTER to services. | |
| static const char * | hangup_cause2sip (int cause) |
| Convert Asterisk hangup causes to SIP codes. | |
| static int | hangup_sip2cause (int cause) |
| Convert SIP hangup causes to Asterisk hangup causes. | |
| static int | init_req (struct sip_request *req, int sipmethod, const char *recip) |
| Initialize SIP request. | |
| static int | init_resp (struct sip_request *resp, const char *msg) |
| Initialize SIP response, based on SIP request. | |
| static void | initialize_initreq (struct sip_pvt *p, struct sip_request *req) |
| Initialize the initital request packet in the pvt structure. This packet is used for creating replies and future requests in a dialog. | |
| static void | initreqprep (struct sip_request *req, struct sip_pvt *p, int sipmethod) |
| Initiate new SIP request to peer/user. | |
| static const char * | insecure2str (int port, int invite) |
| Convert Insecure setting to printable string. | |
| static void | list_route (struct sip_route *route) |
| List all routes - mostly for debugging. | |
| static int | load_module (void) |
| PBX load module - initialization. | |
| static int | local_attended_transfer (struct sip_pvt *transferer, struct sip_dual *current, struct sip_request *req, int seqno) |
| Find all call legs and bridge transferee with target called from handle_request_refer. | |
| static int | lws2sws (char *msgbuf, int len) |
| Parse multiline SIP headers into one header This is enabled if pedanticsipchecking is enabled. | |
| static void | make_our_tag (char *tagbuf, size_t len) |
| Make our SIP dialog tag. | |
| static int | manager_sip_show_peer (struct mansession *s, const struct message *m) |
| Show SIP peers in the manager API. | |
| static int | manager_sip_show_peers (struct mansession *s, const struct message *m) |
| Show SIP peers in the manager API. | |
| static int | method_match (enum sipmethod id, const char *name) |
| returns true if 'name' (with optional trailing whitespace) matches the sip method 'id'. Strictly speaking, SIP methods are case SENSITIVE, but we do a case-insensitive comparison to be more tolerant. following Jon Postel's rule: Be gentle in what you accept, strict with what you send | |
| static char * | nat2str (int nat) |
| Convert NAT setting to text string. | |
| static void | parse_copy (struct sip_request *dst, const struct sip_request *src) |
| Copy SIP request, parse it. | |
| static void | parse_moved_contact (struct sip_pvt *p, struct sip_request *req) |
| Parse 302 Moved temporalily response. | |
| static int | parse_ok_contact (struct sip_pvt *pvt, struct sip_request *req) |
| Save contact header for 200 OK on INVITE. | |
| static enum parse_register_result | parse_register_contact (struct sip_pvt *pvt, struct sip_peer *peer, struct sip_request *req) |
| Parse contact header and save registration (peer registration). | |
| static void | parse_request (struct sip_request *req) |
| Parse a SIP message. | |
| static unsigned int | parse_sip_options (struct sip_pvt *pvt, const char *supported) |
| Parse supported header in incoming packet. | |
| static int | parse_uri (char *uri, char *scheme, char **ret_name, char **pass, char **domain, char **port, char **options) |
| static int | peer_status (struct sip_peer *peer, char *status, int statuslen) |
| Report Peer status in character string. | |
| static void | print_codec_to_cli (int fd, struct ast_codec_pref *pref) |
| Print codec list from preference to CLI/manager. | |
| static void | print_group (int fd, ast_group_t group, int crlf) |
| Print call group and pickup group. | |
| static int | process_sdp (struct sip_pvt *p, struct sip_request *req) |
| Process SIP SDP offer, select formats and activate RTP channels If offer is rejected, we will not change any properties of the call Return 0 on success, a negative value on errors. Must be called after find_sdp(). | |
| static struct sip_peer * | realtime_peer (const char *newpeername, struct sockaddr_in *sin) |
| realtime_peer: Get peer from realtime storage Checks the "sippeers" realtime family from extconfig.conf | |
| static void | realtime_update_peer (const char *peername, struct sockaddr_in *sin, const char *username, const char *fullcontact, int expirey) |
| Update peer object in realtime storage If the Asterisk system name is set in asterisk.conf, we will use that name and store that in the "regserver" field in the sippeers table to facilitate multi-server setups. | |
| static struct sip_user * | realtime_user (const char *username) |
| Load user from realtime storage Loads user from "sipusers" category in realtime (extconfig.conf) Users are matched on From: user name (the domain in skipped). | |
| static void | receive_message (struct sip_pvt *p, struct sip_request *req) |
| Receive SIP MESSAGE method messages. | |
| static const char * | referstatus2str (enum referstatus rstatus) |
| Convert transfer status to string. | |
| static void | reg_source_db (struct sip_peer *peer) |
| Get registration details from Asterisk DB. | |
| static void | register_peer_exten (struct sip_peer *peer, int onoff) |
| Automatically add peer extension to dial plan. | |
| static enum check_auth_result | register_verify (struct sip_pvt *p, struct sockaddr_in *sin, struct sip_request *req, char *uri) |
Verify registration of user
| |
| static struct sip_registry * | registry_addref (struct sip_registry *reg) |
| Add object reference to SIP registry. | |
| static void | registry_unref (struct sip_registry *reg) |
| static char * | regstate2str (enum sipregistrystate regstate) |
| Convert registration state status to string. | |
| static int | reload (void) |
| Part of Asterisk module interface. | |
| static int | reload_config (enum channelreloadreason reason) |
| Re-read SIP.conf config file. | |
| static void | replace_cid (struct sip_pvt *p, const char *rpid_num, const char *calleridname) |
| helper function for check_{user|peer}_ok() | |
| static int | reply_digest (struct sip_pvt *p, struct sip_request *req, char *header, int sipmethod, char *digest, int digest_len) |
| reply to authentication for outbound registrations | |
| static int | reqprep (struct sip_request *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch) |
| Initialize a SIP request message (not the initial one in a dialog). | |
| static int | respprep (struct sip_request *resp, struct sip_pvt *p, const char *msg, const struct sip_request *req) |
| Prepare SIP response packet. | |
| static int | restart_monitor (void) |
| Start the channel monitor thread. | |
| static int | retrans_pkt (void *data) |
| Retransmit SIP message if no answer (Called from scheduler). | |
| static int | send_request (struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno) |
| Send SIP Request to the other part of the dialogue. | |
| static int | send_response (struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno) |
| Transmit response on SIP request. | |
| static int | set_address_from_contact (struct sip_pvt *pvt) |
| Change the other partys IP address based on given contact. | |
| static void | set_destination (struct sip_pvt *p, char *uri) |
| Set destination from SIP URI. | |
| static void | set_peer_defaults (struct sip_peer *peer) |
| Set peer defaults before configuring specific configurations. | |
| static int | sip_addheader (struct ast_channel *chan, void *data) |
| Add a SIP header to an outbound INVITE. | |
| static int | sip_addrcmp (char *name, struct sockaddr_in *sin) |
| Support routine for find_peer. | |
| static struct sip_pvt * | sip_alloc (ast_string_field callid, struct sockaddr_in *sin, int useglobal_nat, const int intended_method) |
| Allocate SIP_PVT structure and set defaults. | |
| static void | sip_alreadygone (struct sip_pvt *dialog) |
| Encapsulate setting of SIP_ALREADYGONE to be able to trace it with debugging. | |
| static int | sip_answer (struct ast_channel *ast) |
| sip_answer: Answer SIP call , send 200 OK on Invite Part of PBX interface | |
| static int | sip_call (struct ast_channel *ast, char *dest, int timeout) |
| Initiate SIP call from PBX used from the dial() application. | |
| static void | sip_cancel_destroy (struct sip_pvt *p) |
| Cancel destruction of SIP dialog. | |
| static int | sip_debug_test_addr (const struct sockaddr_in *addr) |
| See if we pass debug IP filter. | |
| static int | sip_debug_test_pvt (struct sip_pvt *p) |
| Test PVT for debugging output. | |
| static void | sip_destroy (struct sip_pvt *p) |
| Destroy SIP call structure. | |
| static void | sip_destroy_peer (struct sip_peer *peer) |
| Destroy peer object from memory. | |
| static void | sip_destroy_user (struct sip_user *user) |
| Remove user object from in-memory storage. | |
| static int | sip_devicestate (void *data) |
| Part of PBX channel interface. | |
| static int | sip_do_debug (int fd, int argc, char *argv[]) |
| Turn on SIP debugging (CLI command). | |
| static int | sip_do_debug_ip (int fd, int argc, char *argv[]) |
| Enable SIP Debugging in CLI. | |
| static int | sip_do_debug_peer (int fd, int argc, char *argv[]) |
| sip_do_debug_peer: Turn on SIP debugging with peer mask | |
| static int | sip_do_history (int fd, int argc, char *argv[]) |
| Enable SIP History logging (CLI). | |
| static int | sip_do_reload (enum channelreloadreason reason) |
| Reload module. | |
| static int | sip_dtmfmode (struct ast_channel *chan, void *data) |
| Set the DTMFmode for an outbound SIP call (application). | |
| static void | sip_dump_history (struct sip_pvt *dialog) |
| Dump SIP history to debug log file at end of lifespan for SIP dialog. | |
| static int | sip_fixup (struct ast_channel *oldchan, struct ast_channel *newchan) |
| sip_fixup: Fix up a channel: If a channel is consumed, this is called. Basically update any ->owner links | |
| static int | sip_get_codec (struct ast_channel *chan) |
| Return SIP UA's codec (part of the RTP interface). | |
| static enum ast_rtp_get_result | sip_get_rtp_peer (struct ast_channel *chan, struct ast_rtp **rtp) |
| Returns null if we can't reinvite audio (part of RTP interface). | |
| static struct ast_udptl * | sip_get_udptl_peer (struct ast_channel *chan) |
| static enum ast_rtp_get_result | sip_get_vrtp_peer (struct ast_channel *chan, struct ast_rtp **rtp) |
| Returns null if we can't reinvite video (part of RTP interface). | |
| static int | sip_handle_t38_reinvite (struct ast_channel *chan, struct sip_pvt *pvt, int reinvite) |
| Handle T38 reinvite. | |
| static int | sip_hangup (struct ast_channel *ast) |
| sip_hangup: Hangup SIP call Part of PBX interface, called from ast_hangup | |
| static int | sip_indicate (struct ast_channel *ast, int condition, const void *data, size_t datalen) |
| Play indication to user With SIP a lot of indications is sent as messages, letting the device play the indication - busy signal, congestion etc. | |
| static const char * | sip_nat_mode (const struct sip_pvt *p) |
| Display SIP nat mode. | |
| static struct ast_channel * | sip_new (struct sip_pvt *i, int state, const char *title) |
| Initiate a call in the SIP channel called from sip_request_call (calls from the pbx ) for outbound channels and from handle_request_invite for inbound channels. | |
| static int | sip_no_debug (int fd, int argc, char *argv[]) |
| Disable SIP Debugging in CLI. | |
| static int | sip_no_history (int fd, int argc, char *argv[]) |
| Disable SIP History logging (CLI). | |
| static int | sip_notify (int fd, int argc, char *argv[]) |
| Cli command to send SIP notify to peer. | |
| static int | sip_park (struct ast_channel *chan1, struct ast_channel *chan2, struct sip_request *req, int seqno) |
| Park a call using the subsystem in res_features.c This is executed in a separate thread. | |
| static void * | sip_park_thread (void *stuff) |
| Park SIP call support function Starts in a new thread, then parks the call XXX Should we add a wait period after streaming audio and before hangup?? Sometimes the audio can't be heard before hangup. | |
| static void | sip_peer_hold (struct sip_pvt *p, int hold) |
| Change onhold state of a peer using a pvt structure. | |
| static void | sip_poke_all_peers (void) |
| Send a poke to all known peers Space them out 100 ms apart XXX We might have a cool algorithm for this or use random - any suggestions? | |
| static int | sip_poke_noanswer (void *data) |
| React to lack of answer to Qualify poke. | |
| static int | sip_poke_peer (struct sip_peer *peer) |
| Check availability of peer, also keep NAT open. | |
| static int | sip_poke_peer_s (void *data) |
| Poke peer (send qualify to check if peer is alive and well). | |
| static int | sip_prune_realtime (int fd, int argc, char *argv[]) |
| Remove temporary realtime objects from memory (CLI). | |
| static void | sip_pvt_lock (struct sip_pvt *pvt) |
| Helper function to lock, hiding the underlying locking mechanism. | |
| static void | sip_pvt_unlock (struct sip_pvt *pvt) |
| Helper function to unlock pvt, hiding the underlying locking mechanism. | |
| static struct ast_frame * | sip_read (struct ast_channel *ast) |
| Read SIP RTP from channel. | |
| static const struct sockaddr_in * | sip_real_dst (const struct sip_pvt *p) |
| The real destination address for a write. | |
| static int | sip_refer_allocate (struct sip_pvt *p) |
| Allocate SIP refer structure. | |
| static int | sip_reg_timeout (void *data) |
| Registration timeout, register again. | |
| static int | sip_register (char *value, int lineno) |
| Parse register=> line in sip.conf and add to registry. | |
| static void | sip_registry_destroy (struct sip_registry *reg) |
| Destroy registry object Objects created with the register= statement in static configuration. | |
| static int | sip_reload (int fd, int argc, char *argv[]) |
| Force reload of module from cli. | |
| static struct ast_channel * | sip_request_call (const char *type, int format, void *data, int *cause) |
| PBX interface function -build SIP pvt structure SIP calls initiated by the PBX arrive here. | |
| static int | sip_reregister (void *data) |
| Update registration with SIP Proxy. | |
| static struct ast_frame * | sip_rtp_read (struct ast_channel *ast, struct sip_pvt *p, int *faxdetect) |
| Read RTP from network. | |
| static void | sip_scheddestroy (struct sip_pvt *p, int ms) |
| Schedule destruction of SIP dialog. | |
| static void | sip_send_all_registers (void) |
| Send all known registrations. | |
| static int | sip_send_mwi_to_peer (struct sip_peer *peer) |
| Send message waiting indication to alert peer that they've got voicemail. | |
| static int | sip_senddigit_begin (struct ast_channel *ast, char digit) |
| static int | sip_senddigit_end (struct ast_channel *ast, char digit, unsigned int duration) |
| Send DTMF character on SIP channel within one call, we're able to transmit in many methods simultaneously. | |
| static int | sip_sendtext (struct ast_channel *ast, const char *text) |
| Send SIP MESSAGE text within a call Called from PBX core sendtext() application. | |
| static void | sip_set_redirstr (struct sip_pvt *p, char *reason) |
| Translate referring cause. | |
| static int | sip_set_rtp_peer (struct ast_channel *chan, struct ast_rtp *rtp, struct ast_rtp *vrtp, int codecs, int nat_active) |
| Set the RTP peer for this call. | |
| static int | sip_set_udptl_peer (struct ast_channel *chan, struct ast_udptl *udptl) |
| static int | sip_show_channel (int fd, int argc, char *argv[]) |
| Show details of one active dialog. | |
| static int | sip_show_channels (int fd, int argc, char *argv[]) |
| Show active SIP channels. | |
| static int | sip_show_domains (int fd, int argc, char *argv[]) |
| CLI command to list local domains. | |
| static int | sip_show_history (int fd, int argc, char *argv[]) |
| Show history details of one dialog. | |
| static int | sip_show_inuse (int fd, int argc, char *argv[]) |
| CLI Command to show calls within limits set by call_limit. | |
| static int | sip_show_objects (int fd, int argc, char *argv[]) |
| List all allocated SIP Objects (realtime or static). | |
| static int | sip_show_peer (int fd, int argc, char *argv[]) |
| Show one peer in detail. | |
| static int | sip_show_peers (int fd, int argc, char *argv[]) |
| CLI Show Peers command. | |
| static int | sip_show_registry (int fd, int argc, char *argv[]) |
| Show SIP Registry (registrations with other SIP proxies. | |
| static int | sip_show_settings (int fd, int argc, char *argv[]) |
| List global settings for the SIP channel. | |
| static int | sip_show_subscriptions (int fd, int argc, char *argv[]) |
| Show active SIP subscriptions. | |
| static int | sip_show_user (int fd, int argc, char *argv[]) |
| Show one user in detail. | |
| static int | sip_show_users (int fd, int argc, char *argv[]) |
| CLI Command 'SIP Show Users'. | |
| static int | sip_sipredirect (struct sip_pvt *p, const char *dest) |
| Transfer call before connect with a 302 redirect. | |
| static int | sip_transfer (struct ast_channel *ast, const char *dest) |
| Transfer SIP call. | |
| static int | sip_write (struct ast_channel *ast, struct ast_frame *frame) |
| Send frame to media channel (rtp). | |
| static int | sipsock_read (int *id, int fd, short events, void *ignore) |
| Read data from SIP socket. | |
| static void | stop_media_flows (struct sip_pvt *p) |
| Immediately stop RTP, VRTP and UDPTL as applicable. | |
| static const char * | subscription_type2str (enum subscriptiontype subtype) |
| Show subscription type in string format. | |
| static int | t38_get_rate (int t38cap) |
| Get Max T.38 Transmission rate from T38 capabilities. | |
| static struct sip_peer * | temp_peer (const char *name) |
| Create temporary peer (used in autocreatepeer mode). | |
| static void | temp_pvt_cleanup (void *) |
| static int | temp_pvt_init (void *) |
| static char * | terminate_uri (char *uri) |
| static char * | transfermode2str (enum transfermodes mode) |
| Convert transfer mode to text string. | |
| static void | transmit_fake_auth_response (struct sip_pvt *p, struct sip_request *req, int reliable) |
| Send a fake 401 Unauthorized response when the administrator wants to hide the names of local users/peers from fishers. | |
| static int | transmit_info_with_digit (struct sip_pvt *p, const char digit, unsigned int duration) |
| Send SIP INFO dtmf message, see Cisco documentation on cisco.com. | |
| static int | transmit_info_with_vidupdate (struct sip_pvt *p) |
| Send SIP INFO with video update request. | |
| static int | transmit_invite (struct sip_pvt *p, int sipmethod, int sdp, int init) |
| Build REFER/INVITE/OPTIONS message and transmit it. | |
| static int | transmit_message_with_text (struct sip_pvt *p, const char *text) |
| Transmit text with SIP MESSAGE method. | |
| static int | transmit_notify_with_mwi (struct sip_pvt *p, int newmsgs, int oldmsgs, char *vmexten) |
| Notify user of messages waiting in voicemail. | |
| static int | transmit_notify_with_sipfrag (struct sip_pvt *p, int cseq, char *message, int terminate) |
| Notify a transferring party of the status of transfer. | |
| static int | transmit_refer (struct sip_pvt *p, const char *dest) |
| Transmit SIP REFER message (initiated by the transfer() dialplan application. | |
| static int | transmit_register (struct sip_registry *r, int sipmethod, const char *auth, const char *authheader) |
| Transmit register to SIP proxy or UA. | |
| static int | transmit_reinvite_with_sdp (struct sip_pvt *p, int t38version) |
| Transmit reinvite with SDP. | |
| static int | transmit_request (struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch) |
| Transmit generic SIP request. | |
| static int | transmit_request_with_auth (struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch) |
| Transmit SIP request, auth added. | |
| static int | transmit_response (struct sip_pvt *p, const char *msg, const struct sip_request *req) |
| Transmit response, no retransmits. | |
| static int | transmit_response_reliable (struct sip_pvt *p, const char *msg, const struct sip_request *req) |
| Transmit response, Make sure you get an ACK This is only used for responses to INVITEs, where we need to make sure we get an ACK. | |
| static int | transmit_response_using_temp (ast_string_field callid, struct sockaddr_in *sin, int useglobal_nat, const int intended_method, const struct sip_request *req, const char *msg) |
| Transmit response, no retransmits, using a temporary pvt structure. | |
| static int | transmit_response_with_allow (struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable) |
| Append Accept header, content length before transmitting response. | |
| static int | transmit_response_with_auth (struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *randdata, enum xmittype reliable, const char *header, int stale) |
| Respond with authorization request. | |
| static int | transmit_response_with_date (struct sip_pvt *p, const char *msg, const struct sip_request *req) |
| Append date and content length before transmitting response. | |
| static int | transmit_response_with_sdp (struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable) |
| Used for 200 OK and 183 early media. | |
| static int | transmit_response_with_t38_sdp (struct sip_pvt *p, char *msg, struct sip_request *req, int retrans) |
| Used for 200 OK and 183 early media. | |
| static int | transmit_response_with_unsupported (struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *unsupported) |
| Transmit response, no retransmits. | |
| static int | transmit_sip_request (struct sip_pvt *p, struct sip_request *req) |
| Transmit SIP request unreliably (only used in sip_notify subsystem). | |
| static int | transmit_state_notify (struct sip_pvt *p, int state, int full, int timeout) |
| Used in the SUBSCRIBE notification subsystem. | |
| static void | try_suggested_sip_codec (struct sip_pvt *p) |
| Try setting codec suggested by the SIP_CODEC channel variable. | |
| static int | unload_module (void) |
| PBX unload module API. | |
| static void | unref_peer (struct sip_peer *peer) |
| static void | unref_user (struct sip_user *user) |
| static int | update_call_counter (struct sip_pvt *fup, int event) |
| update_call_counter: Handle call_limit for SIP users Setting a call-limit will cause calls above the limit not to be accepted. | |
| static void | update_peer (struct sip_peer *p, int expiry) |
| Update peer data in database (if used). | |
Variables | |
| static struct in_addr | __ourip |
| static int | allow_external_domains |
| static int | apeerobjs = 0 |
| static char * | app_dtmfmode = "SIPDtmfMode" |
| static char * | app_sipaddheader = "SIPAddHeader" |
| static struct sip_auth * | authl = NULL |
| static int | autocreatepeer |
| static struct sockaddr_in | bindaddr = { 0, } |
| static struct ast_custom_function | checksipdomain_function |
| static struct ast_cli_entry | cli_sip [] |
| SIP Cli commands definition. | |
| static int | compactheaders |
| static const char | config [] = "sip.conf" |
| static const char | debug_usage [] |
| static struct sockaddr_in | debugaddr |
| static char | default_callerid [AST_MAX_EXTENSION] |
| static char | default_context [AST_MAX_CONTEXT] |
| static int | default_expiry = DEFAULT_DEFAULT_EXPIRY |
| static char | default_fromdomain [AST_MAX_EXTENSION] |
| static struct ast_jb_conf | default_jbconf |
| Global jitterbuffer configuration - by default, jb is disabled. | |
| static char | default_language [MAX_LANGUAGE] |
| static int | default_maxcallbitrate |
| static char | default_mohinterpret [MAX_MUSICCLASS] |
| static char | default_mohsuggest [MAX_MUSICCLASS] |
| static char | default_notifymime [AST_MAX_EXTENSION] |
| static struct ast_codec_pref | default_prefs |
| static int | default_qualify |
| static char | default_subscribecontext [AST_MAX_CONTEXT] |
| static char | default_vmexten [AST_MAX_EXTENSION] |
| static char * | descrip_dtmfmode = "SIPDtmfMode(inband|info|rfc2833): Changes the dtmfmode for a SIP call\n" |
| static char * | descrip_sipaddheader |
| static struct sip_pvt * | dialoglist = NULL |
| static int | dumphistory |
| static int | expiry = DEFAULT_EXPIRY |
| static time_t | externexpire = 0 |
| static char | externhost [MAXHOSTNAMELEN] |
| static struct sockaddr_in | externip |
| static int | externrefresh = 10 |
| static int | global_allowguest |
| static int | global_allowsubscribe |
| static enum transfermodes | global_allowtransfer |
| static int | global_alwaysauthreject |
| static int | global_autoframing |
| static int | global_callevents |
| static int | global_capability = AST_FORMAT_ULAW | AST_FORMAT_ALAW | AST_FORMAT_GSM | AST_FORMAT_H263 |
| Codecs that we support by default:. | |
| static int | global_directrtpsetup |
| static struct ast_flags | global_flags [2] = {{0}} |
| static struct ast_jb_conf | global_jbconf |
| static int | global_limitonpeers |
| static int | global_match_auth_username |
| static int | global_mwitime |
| static int | global_notifyhold |
| static int | global_notifyringing |
| static char | global_realm [MAXHOSTNAMELEN] |
| static int | global_reg_timeout |
| static int | global_regattempts_max |
| static char | global_regcontext [AST_MAX_CONTEXT] |
| static int | global_relaxdtmf |
| static int | global_rtautoclear |
| static int | global_rtpholdtimeout |
| static int | global_rtpkeepalive |
| static int | global_rtptimeout |
| static int | global_srvlookup |
| static int | global_t1min |
| static int | global_t38_capability = T38FAX_VERSION_0 | T38FAX_RATE_2400 | T38FAX_RATE_4800 | T38FAX_RATE_7200 | T38FAX_RATE_9600 |
| static unsigned int | global_tos_audio |
| static unsigned int | global_tos_sip |
| static unsigned int | global_tos_video |
| static char | global_useragent [AST_MAX_EXTENSION] |
| static const char | history_usage [] |
| static struct io_context * | io |
| static struct ast_ha * | localaddr |
| static char | mandescr_show_peer [] |
| static char | mandescr_show_peers [] |
| static int | max_expiry = DEFAULT_MAX_EXPIRY |
| static int | min_expiry = DEFAULT_MIN_EXPIRY |
| static pthread_t | monitor_thread = AST_PTHREADT_NULL |
| This is the thread for the monitor which checks for input on the channels which are not currently in use. | |
| static const char | no_debug_usage [] |
| static const char | no_history_usage [] |
| static const char | notify_config [] = "sip_notify.conf" |
| static struct ast_config * | notify_types |
| static const char | notify_usage [] |
| static int | ourport |
| static struct sockaddr_in | outboundproxyip |
| static int | pedanticsipchecking |
| static struct ast_peer_list | peerl |
| The peer list: Peers and Friends. | |
| static const char | prune_realtime_usage [] |
| static int | recordhistory |
| static const struct c_referstatusstring | referstatusstrings [] |
| static struct ast_register_list | regl |
| The register list: Other SIP proxies we register with and place calls to. | |
| static int | regobjs = 0 |
| static int | rpeerobjs = 0 |
| static int | ruserobjs = 0 |
| static struct sched_context * | sched |
| static const char | show_channel_usage [] |
| static const char | show_channels_usage [] |
| static const char | show_domains_usage [] |
| static const char | show_history_usage [] |
| static const char | show_inuse_usage [] |
| static const char | show_objects_usage [] |
| static const char | show_peer_usage [] |
| static const char | show_peers_usage [] |
| static const char | show_reg_usage [] |
| static const char | show_settings_usage [] |
| static const char | show_subscriptions_usage [] |
| static const char | show_user_usage [] |
| static const char | show_users_usage [] |
| static struct ast_custom_function | sip_header_function |
| static const struct cfsip_methods | sip_methods [] |
| static const struct cfsip_options | sip_options [] |
| List of well-known SIP options. If we get this in a require, we should check the list and answer accordingly. | |
| static const char | sip_reload_usage [] |
| static int | sip_reloading = FALSE |
| static enum channelreloadreason | sip_reloadreason |
| static struct ast_rtp_protocol | sip_rtp |
| Interface structure with callbacks used to connect to RTP module. | |
| static const struct ast_channel_tech | sip_tech |
| Definition of this channel for PBX channel registration. | |
| static const struct ast_channel_tech | sip_tech_info |
| This version of the sip channel tech has no send_digit_begin callback. This is for use with channels using SIP INFO DTMF so that the core knows that the channel doesn't want DTMF BEGIN frames. | |
| static struct ast_udptl_protocol | sip_udptl |
| Interface structure with callbacks used to connect to UDPTL module. | |
| static struct ast_custom_function | sipchaninfo_function |
| Structure to declare a dialplan function: SIPCHANINFO. | |
| ast_custom_function | sippeer_function |
| Structure to declare a dialplan function: SIPPEER. | |
| static int | sipsock = -1 |
| static int * | sipsock_read_id |
| static int | speerobjs = 0 |
| static const struct cfsubscription_types | subscription_types [] |
| static int | suserobjs = 0 |
| static char * | synopsis_dtmfmode = "Change the dtmfmode for a SIP call" |
| static char * | synopsis_sipaddheader = "Add a SIP header to the outbound call" |
| static struct ast_user_list | userl |
| The user list: Users and friends. | |
|
|
SIP Methods we support.
Definition at line 467 of file chan_sip.c. Referenced by respprep(), transmit_invite(), transmit_notify_with_sipfrag(), transmit_refer(), and transmit_reinvite_with_sdp(). |
|
|
Append to SIP dialog history.
Definition at line 1870 of file chan_sip.c. Referenced by __sip_autodestruct(), append_send_history(), auto_congest(), build_reply_digest(), cb_extensionstate(), dialogstatechange(), do_register_auth(), handle_invite_replaces(), handle_request(), handle_request_bye(), handle_request_invite(), handle_request_refer(), handle_request_register(), handle_request_subscribe(), local_attended_transfer(), process_sip_queue(), retrans_pkt(), send_request(), send_response(), sip_cancel_destroy(), sip_fixup(), sip_hangup(), sip_new(), sip_park_thread(), sip_reregister(), sip_scheddestroy(), sip_set_rtp_peer(), transmit_register(), transmit_reinvite_with_sdp(), and transmit_response_with_auth(). |
|
|
Definition at line 189 of file chan_sip.c. |
|
|
Definition at line 597 of file chan_sip.c. Referenced by __sip_destroy(), handle_request_invite(), handle_response_invite(), sip_hangup(), and update_call_counter(). |
|
|
Definition at line 599 of file chan_sip.c. Referenced by __sip_destroy(), handle_response_answer(), handle_response_invite(), and update_call_counter(). |
|
|
Definition at line 499 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 493 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 503 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 490 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 495 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 486 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 161 of file chan_sip.c. Referenced by reload_config(). |
|
|
Expire slowly Definition at line 178 of file chan_sip.c. |
|
|
Qualification: How often to check, if the host is down... Definition at line 193 of file chan_sip.c. |
|
|
Qualification: How often to check for the host to be up Definition at line 192 of file chan_sip.c. |
|
|
Max bitrate for video Definition at line 506 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 163 of file chan_sip.c. Referenced by reload_config(). |
|
|
Definition at line 165 of file chan_sip.c. Referenced by reload_config(), reqprep(), reset_global_settings(), transmit_refer(), and transmit_register(). |
|
|
Qualification: Must be faster than 2 seconds by default Definition at line 191 of file chan_sip.c. |
|
|
Definition at line 162 of file chan_sip.c. Referenced by reload_config(). |
|
|
Definition at line 487 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 488 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 492 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 491 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 501 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 502 of file chan_sip.c. Referenced by reload_config(). |
|
|
Definition at line 504 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 500 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 164 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
How frequently to retransmit Default: 2 * 500 ms in RFC 3261 Definition at line 195 of file chan_sip.c. |
|
|
Recommended setting is ON Definition at line 494 of file chan_sip.c. Referenced by reload_config(). |
|
|
100 MS for minimal roundtrip time Definition at line 505 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Audio packets should be marked as DSCP EF (Expedited Forwarding), but the default is 0 to be compatible with previous versions. Definition at line 497 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Call signalling packets should be marked as DSCP CS3, but the default is 0 to be compatible with previous versions. Definition at line 496 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Video packets should be marked as DSCP AF41, but the default is 0 to be compatible with previous versions. Definition at line 498 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
|
Default Useragent: header unless re-defined in sip.conf Definition at line 508 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 489 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Below here, we use EXPIRY_GUARD_PCT instead of EXPIRY_GUARD_SECS Definition at line 170 of file chan_sip.c. |
|
|
This is the minimum guard time applied. If GUARD_PCT turns out to be lower than this, it will use this time instead. This is in milliseconds. Definition at line 172 of file chan_sip.c. |
|
|
Percentage of expires timeout to use when below EXPIRY_GUARD_LIMIT Definition at line 176 of file chan_sip.c. |
|
|
How long before expiry do we reregister Definition at line 169 of file chan_sip.c. |
|
|
Definition at line 147 of file chan_sip.c. |
|
|
Definition at line 1025 of file chan_sip.c. Referenced by __sip_reliable_xmit(), and retrans_pkt(). |
|
|
Definition at line 1024 of file chan_sip.c. Referenced by __sip_ack(), __sip_pretend_ack(), __sip_reliable_xmit(), __sip_semi_ack(), handle_request(), and retrans_pkt(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Referenced by __sip_show_channels(). |
|
|
Definition at line 598 of file chan_sip.c. Referenced by handle_request_invite(), sip_hangup(), and update_call_counter(). |
|
|
Definition at line 600 of file chan_sip.c. Referenced by sip_call(), and update_call_counter(). |
|
|
our initial sip sequence number Definition at line 208 of file chan_sip.c. Referenced by sip_alloc(), sip_register(), and transmit_response_using_temp(). |
|
|
Definition at line 156 of file chan_sip.c. |
|
|
Definition at line 186 of file chan_sip.c. |
|
|
Try authentication three times, then fail Definition at line 202 of file chan_sip.c. Referenced by handle_response(), handle_response_bye(), handle_response_invite(), and handle_response_register(). |
|
|
Try only 6 times for retransmissions, a total of 7 transmissions Definition at line 196 of file chan_sip.c. |
|
|
Definition at line 224 of file chan_sip.c. |
|
|
Definition at line 400 of file chan_sip.c. |
|
|
Definition at line 223 of file chan_sip.c. |
|
|
Definition at line 6230 of file chan_sip.c. Referenced by add_sdp(). |
|
|
Whether or not we've already been destroyed by our peer Definition at line 703 of file chan_sip.c. Referenced by handle_request(), handle_request_bye(), handle_request_cancel(), handle_request_invite(), handle_request_refer(), handle_response(), handle_response_invite(), retrans_pkt(), sip_alreadygone(), sip_hangup(), and sip_set_rtp_peer(). |
|
|
Call limit enforced for this call Definition at line 744 of file chan_sip.c. Referenced by check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), and update_call_counter(). |
|
|
allow peers to be reinvited to send media directly p2p Definition at line 732 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), reload_config(), reset_global_settings(), sip_get_rtp_peer(), sip_get_udptl_peer(), sip_get_vrtp_peer(), and sip_handle_t38_reinvite(). |
|
|
allow media reinvite when new peer is behind NAT Definition at line 733 of file chan_sip.c. Referenced by handle_common_options(), sip_get_rtp_peer(), and sip_set_rtp_peer(). |
|
|
Do not hangup at first ast_hangup Definition at line 718 of file chan_sip.c. Referenced by handle_invite_replaces(), handle_request_refer(), local_attended_transfer(), and sip_hangup(). |
|
|
DTMF Support: four settings, uses two bits Definition at line 719 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), dialog_activate_media(), handle_common_options(), handle_request_invite(), sip_alloc(), sip_dtmfmode(), sip_new(), sip_rtp_read(), sip_senddigit_begin(), sip_senddigit_end(), sip_show_channel(), and sip_show_settings(). |
|
|
DTMF Support: AUTO switch between rfc2833 and in-band DTMF Definition at line 723 of file chan_sip.c. Referenced by check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), dtmfmode2str(), handle_common_options(), and sip_alloc(). |
|
|
DTMF Support: Inband audio, only for ULAW/ALAW - "inband" Definition at line 721 of file chan_sip.c. Referenced by dtmfmode2str(), handle_common_options(), sip_dtmfmode(), sip_new(), sip_rtp_read(), sip_senddigit_begin(), and sip_senddigit_end(). |
|
|
DTMF Support: SIP Info messages - "info" Definition at line 722 of file chan_sip.c. Referenced by create_addr_from_peer(), dialog_activate_media(), dtmfmode2str(), handle_common_options(), handle_request_invite(), sip_dtmfmode(), sip_new(), and sip_senddigit_end(). |
|
|
DTMF Support: RTP DTMF - "rfc2833" Definition at line 720 of file chan_sip.c. Referenced by check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), dtmfmode2str(), handle_common_options(), handle_request_invite(), reload_config(), reset_global_settings(), sip_alloc(), sip_dtmfmode(), sip_rtp_read(), sip_senddigit_begin(), and sip_senddigit_end(). |
|
|
Value: (SIP_PROMISCREDIR | SIP_TRUSTRPID | SIP_SENDRPID | SIP_DTMF | SIP_REINVITE | \ SIP_PROG_INBAND | SIP_USECLIENTCODE | SIP_NAT | SIP_G726_NONSTANDARD | \ SIP_USEREQPHONE | SIP_INSECURE_PORT | SIP_INSECURE_INVITE) Definition at line 749 of file chan_sip.c. Referenced by build_user(), check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), set_device_defaults(), set_peer_defaults(), sip_alloc(), and sip_poke_peer(). |
|
|
---- Definition at line 717 of file chan_sip.c. |
|
|
Use non-standard packing for G726-32 data Definition at line 747 of file chan_sip.c. Referenced by add_codec_to_sdp(), and handle_common_options(). |
|
|
Got a refer? Definition at line 710 of file chan_sip.c. Referenced by handle_request_refer(), local_attended_transfer(), sip_handle_t38_reinvite(), sip_read(), sip_set_rtp_peer(), and sip_set_udptl_peer(). |
|
|
Did this connection increment the counter of in-use calls? Definition at line 746 of file chan_sip.c. Referenced by __sip_destroy(), and update_call_counter(). |
|
|
don't require authentication for incoming INVITEs Definition at line 737 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), check_peer_ok(), check_user_full(), and handle_common_options(). |
|
|
don't require matching port for incoming requests Definition at line 736 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), and sip_addrcmp(). |
|
|
Max amount of SIP headers to read Definition at line 204 of file chan_sip.c. Referenced by add_header(), and parse_request(). |
|
|
Max amount of lines in SIP attachment (like SDP) Definition at line 205 of file chan_sip.c. Referenced by add_line(), and parse_request(). |
|
|
Also from RFC 3261 (2543), should sub headers tho Definition at line 206 of file chan_sip.c. Referenced by __transmit_response(), transmit_info_with_digit(), transmit_info_with_vidupdate(), transmit_invite(), transmit_message_with_text(), transmit_notify_with_mwi(), transmit_notify_with_sipfrag(), transmit_refer(), transmit_register(), transmit_reinvite_with_sdp(), transmit_request(), transmit_request_with_auth(), transmit_response_with_attachment(), transmit_response_with_auth(), transmit_response_with_unsupported(), and transmit_state_notify(). |
|
|
four settings, uses two bits Definition at line 725 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), build_via(), copy_via_headers(), create_addr_from_peer(), handle_common_options(), register_verify(), sip_alloc(), sip_nat_mode(), sip_real_dst(), sip_show_channel(), sip_show_settings(), and transmit_response_using_temp(). |
|
|
NAT Both ROUTE and RFC3581 Definition at line 729 of file chan_sip.c. Referenced by copy_via_headers(), handle_common_options(), and nat2str(). |
|
|
No nat support Definition at line 726 of file chan_sip.c. Referenced by handle_common_options(), and nat2str(). |
|
|
NAT RFC3581 Definition at line 727 of file chan_sip.c. Referenced by build_via(), copy_via_headers(), handle_common_options(), nat2str(), reload_config(), and reset_global_settings(). |
|
|
NAT Only ROUTE Definition at line 728 of file chan_sip.c. Referenced by _sip_show_devices(), _sip_show_peers(), check_peer_ok(), check_user_full(), check_user_ok(), check_via(), create_addr_from_peer(), handle_common_options(), nat2str(), parse_register_contact(), send_request(), set_address_from_contact(), sip_alloc(), sip_nat_mode(), sip_real_dst(), and transmit_response_using_temp(). |
|
|
if we need to be destroyed by the monitor thread Definition at line 704 of file chan_sip.c. Referenced by __sip_show_channels(), do_monitor(), handle_request(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_bye(), handle_response_invite(), handle_response_message(), handle_response_notify(), handle_response_peerpoke(), handle_response_refer(), handle_response_register(), retrans_pkt(), sip_hangup(), sip_reg_timeout(), and sip_show_channel(). |
|
|
Do we need to send another reinvite? Definition at line 708 of file chan_sip.c. Referenced by check_pendings(), sip_handle_t38_reinvite(), sip_hangup(), sip_read(), sip_set_rtp_peer(), and sip_set_udptl_peer(). |
|
|
Suppress recording request/response history Definition at line 743 of file chan_sip.c. Referenced by do_register_auth(), handle_request_bye(), handle_request_invite(), process_sip_queue(), send_request(), send_response(), sip_alloc(), sip_hangup(), sip_new(), sip_reregister(), sip_scheddestroy(), sip_set_rtp_peer(), temp_pvt_init(), transmit_register(), transmit_reinvite_with_sdp(), and transmit_response_using_temp(). |
|
|
Didn't get video in invite, don't offer Definition at line 705 of file chan_sip.c. Referenced by add_sdp(), process_sdp(), and sip_indicate(). |
|
|
Definition at line 403 of file chan_sip.c. |
|
|
Definition at line 405 of file chan_sip.c. |
|
|
Definition at line 413 of file chan_sip.c. |
|
|
Definition at line 414 of file chan_sip.c. |
|
|
Definition at line 417 of file chan_sip.c. |
|
|
Definition at line 406 of file chan_sip.c. |
|
|
Definition at line 416 of file chan_sip.c. |
|
|
Definition at line 407 of file chan_sip.c. |
|
|
Definition at line 409 of file chan_sip.c. |
|
|
Definition at line 408 of file chan_sip.c. |
|
|
Definition at line 410 of file chan_sip.c. |
|
|
Definition at line 402 of file chan_sip.c. Referenced by handle_request_invite(). |
|
|
Definition at line 418 of file chan_sip.c. |
|
|
Definition at line 411 of file chan_sip.c. |
|
|
Definition at line 412 of file chan_sip.c. |
|
|
Definition at line 415 of file chan_sip.c. |
|
|
Definition at line 404 of file chan_sip.c. |
|
|
Direction of the last transaction in this dialog Definition at line 716 of file chan_sip.c. Referenced by handle_request_bye(), handle_request_invite(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_invite(), reqprep(), respprep(), sip_call(), sip_hangup(), sip_indicate(), sip_poke_peer(), sip_send_mwi_to_peer(), sip_show_channel(), sip_write(), transmit_refer(), transmit_register(), transmit_reinvite_with_sdp(), transmit_response_with_attachment(), transmit_response_with_sdp(), update_call_counter(), and write_media_frame(). |
|
|
Allow overlap dialing ? Definition at line 770 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), get_destination(), handle_common_options(), handle_request_invite(), reload_config(), reset_global_settings(), and sip_show_settings(). |
|
|
Allow subscriptions from this peer? Definition at line 769 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), build_device(), build_peer(), handle_common_options(), handle_request_subscribe(), reload_config(), reset_global_settings(), and sip_show_settings(). |
|
|
26: Buggy CISCO MWI fix Definition at line 781 of file chan_sip.c. Referenced by handle_common_options(), and transmit_notify_with_mwi(). |
|
|
Call states Definition at line 777 of file chan_sip.c. Referenced by __sip_show_channels(), and update_call_counter(). |
|
|
24: Inactive Definition at line 779 of file chan_sip.c. Referenced by add_sdp(). |
|
|
23: One directional hold Definition at line 778 of file chan_sip.c. Referenced by add_sdp(). |
|
|
Definition at line 763 of file chan_sip.c. |
|
|
Definition at line 764 of file chan_sip.c. Referenced by reload_config(), and reset_global_settings(). |
|
|
Definition at line 765 of file chan_sip.c. Referenced by reload_config(), sip_do_debug(), sip_do_debug_device(), sip_do_debug_ip(), sip_do_debug_peer(), and sip_no_debug(). |
|
|
Dynamic Peers register with Asterisk Definition at line 766 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_devices(), _sip_show_peer(), _sip_show_peers(), build_device(), build_peer(), function_sippeer(), register_verify(), set_device_host(), temp_device(), and temp_peer(). |
|
|
Value: (SIP_PAGE2_ALLOWSUBSCRIBE | SIP_PAGE2_ALLOWOVERLAP | SIP_PAGE2_VIDEOSUPPORT | \ SIP_PAGE2_T38SUPPORT | SIP_PAGE2_RFC2833_COMPENSATE | SIP_PAGE2_BUGGY_MWI) Definition at line 783 of file chan_sip.c. Referenced by build_user(), check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), set_device_defaults(), set_peer_defaults(), sip_alloc(), and sip_poke_peer(). |
|
|
Definition at line 762 of file chan_sip.c. Referenced by build_device(), build_peer(), destroy_association(), reload_config(), and sip_show_settings(). |
|
|
Did this connection increment the counter of in-use calls? Definition at line 772 of file chan_sip.c. Referenced by __sip_destroy(), and update_call_counter(). |
|
|
25: ???? Definition at line 780 of file chan_sip.c. Referenced by create_addr_from_peer(), dialog_activate_media(), handle_common_options(), handle_request_invite(), sip_alloc(), and sip_show_settings(). |
|
|
Definition at line 759 of file chan_sip.c. Referenced by build_device(), build_peer(), destroy_association(), parse_register_contact(), and reg_source_db(). |
|
|
Definition at line 758 of file chan_sip.c. Referenced by expire_register(), and reload_config(). |
|
|
Definition at line 756 of file chan_sip.c. Referenced by complete_sip_prune_realtime_peer(), complete_sip_prune_realtime_user(), reload_config(), sip_prune_realtime(), sip_show_settings(), and update_peer(). |
|
|
Definition at line 760 of file chan_sip.c. Referenced by realtime_update_peer(), reload_config(), and sip_show_settings(). |
|
|
Definition at line 757 of file chan_sip.c. Referenced by reload_config(), reset_global_settings(), sip_show_settings(), and update_peer(). |
|
|
Automatic peers need to destruct themselves Definition at line 767 of file chan_sip.c. Referenced by expire_register(), sip_destroy_device(), sip_destroy_peer(), temp_device(), and temp_peer(). |
|
|
Only issue MWI notification if subscribed to Definition at line 771 of file chan_sip.c. Referenced by build_device(), build_peer(), does_peer_need_mwi(), and register_verify(). |
|
|
T38 Fax Passthrough Support Definition at line 773 of file chan_sip.c. Referenced by create_addr_from_peer(), dialog_activate_media(), and sip_alloc(). |
|
|
21: T38 Fax Passthrough Support (not implemented) Definition at line 775 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), add_sdp(), handle_common_options(), and sip_show_settings(). |
|
|
22: T38 Fax Passthrough Support (not implemented) Definition at line 776 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), and sip_show_settings(). |
|
|
20: T38 Fax Passthrough Support Definition at line 774 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), sip_read(), sip_rtp_read(), and sip_show_settings(). |
|
|
Definition at line 768 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_devices(), _sip_show_peer(), _sip_show_peers(), check_peer_ok(), check_user_full(), check_user_ok(), create_addr_from_peer(), dialog_activate_media(), handle_common_options(), reload_config(), sip_alloc(), and sip_show_settings(). |
|
|
Need to send bye after we ack? Definition at line 709 of file chan_sip.c. Referenced by check_pendings(), handle_response_answer(), handle_response_invite(), sip_handle_t38_reinvite(), sip_hangup(), sip_read(), sip_set_rtp_peer(), and sip_set_udptl_peer(). |
|
|
Debug this packet Definition at line 788 of file chan_sip.c. Referenced by find_via_branch(), handle_request(), handle_request_message(), handle_request_refer(), handle_request_register(), handle_request_subscribe(), handle_response(), initialize_initreq(), and sipsock_read(). |
|
|
This is a re-transmit, ignore it Definition at line 790 of file chan_sip.c. Referenced by check_peer_ok(), check_user_full(), check_user_ok(), handle_invite_replaces(), handle_request(), handle_request_bye(), handle_request_info(), handle_request_invite(), handle_request_message(), handle_request_refer(), handle_request_subscribe(), handle_response(), handle_response_answer(), handle_response_invite(), and register_verify(). |
|
|
This packet has a to-tag Definition at line 789 of file chan_sip.c. Referenced by find_call(), handle_request(), and match_or_create_dialog(). |
|
|
three settings, uses two bits Definition at line 739 of file chan_sip.c. Referenced by handle_common_options(), sip_indicate(), and sip_show_settings(). |
|
|
Definition at line 740 of file chan_sip.c. Referenced by sip_indicate(), and sip_show_settings(). |
|
|
Definition at line 741 of file chan_sip.c. Referenced by handle_common_options(), and sip_show_settings(). |
|
|
Definition at line 742 of file chan_sip.c. Referenced by handle_common_options(), and sip_indicate(). |
|
|
Have sent 183 message progress Definition at line 707 of file chan_sip.c. Referenced by sip_indicate(), sip_write(), and write_media_frame(). |
|
|
Promiscuous redirection Definition at line 711 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), parse_moved_contact(), sip_show_channel(), and sip_show_settings(). |
|
|
Flag for realtime users Definition at line 714 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_devices(), _sip_show_peer(), _sip_show_peers(), build_device(), build_peer(), expire_register(), parse_register_contact(), sip_destroy_device(), sip_destroy_peer(), sip_destroy_user(), and update_peer(). |
|
|
three bits used Definition at line 731 of file chan_sip.c. Referenced by handle_common_options(). |
|
|
use UPDATE (RFC3311) when reinviting this peer Definition at line 734 of file chan_sip.c. Referenced by handle_common_options(), and transmit_reinvite_with_sdp(). |
|
|
Have sent 180 ringing Definition at line 706 of file chan_sip.c. Referenced by sip_indicate(). |
|
|
Remote Party-ID Support Definition at line 745 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), and handle_common_options(). |
|
|
Definition at line 197 of file chan_sip.c. Referenced by create_addr(), sip_alloc(), and sip_scheddestroy(). |
|
|
SIP request timeout (rfc 3261) 64*T1
Definition at line 198 of file chan_sip.c. Referenced by sip_call(). |
|
|
Trust RPID headers? Definition at line 712 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), handle_common_options(), and replace_cid(). |
|
|
Trust X-ClientCode info message Definition at line 715 of file chan_sip.c. Referenced by handle_common_options(), handle_request_info(), and sip_show_settings(). |
|
|
Add user=phone to numeric URI. Default off Definition at line 713 of file chan_sip.c. Referenced by _sip_show_device(), _sip_show_peer(), build_device(), build_peer(), initreqprep(), reload_config(), and sip_show_settings(). |
|
|
|
Definition at line 819 of file chan_sip.c. |
|
|
Definition at line 820 of file chan_sip.c. Referenced by sip_do_debug(). |
|
|
Standard SIP port from RFC 3261. DO NOT CHANGE THIS.
Definition at line 473 of file chan_sip.c. Referenced by build_contact(), build_peer(), check_via(), create_addr(), parse_register_contact(), reload_config(), reset_ip_interface(), set_address_from_contact(), set_destination(), set_device_defaults(), set_device_host(), set_peer_defaults(), and sip_show_registry(). |
|
|
Define SIP option tags, used in Require: and Supported: headers We need to be aware of these properties in the phones to use the replace: header. We should not do that without knowing that the other end supports it... This is nothing we can configure, we learn by the dialog Supported: header on the REGISTER (peer) or the INVITE (other devices) We are not using many of these today, but will in the future. This is documented in RFC 3261 Definition at line 399 of file chan_sip.c. |
|
|
SIP Extensions we support.
Definition at line 470 of file chan_sip.c. Referenced by respprep(), transmit_invite(), transmit_notify_with_sipfrag(), transmit_refer(), and transmit_reinvite_with_sdp(). |
|
|
Default: 0 (unset) Definition at line 793 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
12000 bps t38FaxRate Definition at line 812 of file chan_sip.c. Referenced by t38_get_rate(). |
|
|
14400 bps t38FaxRate This is default: NO MMR and JBIG transcoding, NO fill bit removal, transferredTCF TCF, UDP FEC, Version 0 and 9600 max fax rate Definition at line 813 of file chan_sip.c. Referenced by t38_get_rate(). |
|
|
2400 bps t38FaxRate Definition at line 808 of file chan_sip.c. Referenced by reset_global_settings(), and t38_get_rate(). |
|
|
4800 bps t38FaxRate Definition at line 809 of file chan_sip.c. Referenced by reset_global_settings(), and t38_get_rate(). |
|
|
7200 bps t38FaxRate Definition at line 810 of file chan_sip.c. Referenced by reset_global_settings(), and t38_get_rate(). |
|
|
9600 bps t38FaxRate Definition at line 811 of file chan_sip.c. Referenced by reset_global_settings(), and t38_get_rate(). |
|
|
Unset for transferredTCF (UDPTL), set for localTCF (TPKT) Definition at line 798 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
Definition at line 797 of file chan_sip.c. Referenced by create_addr_from_peer(), dialog_activate_media(), and sip_alloc(). |
|
|
Default: 0 (unset) Definition at line 795 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
Default: 0 (unset) Definition at line 794 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
Set for t38UDPFEC Definition at line 801 of file chan_sip.c. Referenced by create_addr_from_peer(), dialog_activate_media(), and sip_alloc(). |
|
|
two bits, if unset NO t38UDPEC field in T38 SDP Definition at line 800 of file chan_sip.c. Referenced by add_t38_sdp(), create_addr_from_peer(), dialog_activate_media(), and sip_alloc(). |
|
|
Set for t38UDPRedundancy Definition at line 802 of file chan_sip.c. Referenced by add_t38_sdp(), create_addr_from_peer(), dialog_activate_media(), and sip_alloc(). |
|
|
two bits, 2 values so far, up to 4 values max Definition at line 804 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
Version 0 Definition at line 805 of file chan_sip.c. Referenced by add_t38_sdp(), and reset_global_settings(). |
|
|
Version 1 Definition at line 806 of file chan_sip.c. Referenced by add_t38_sdp(). |
|
|
Definition at line 151 of file chan_sip.c. |
|
|
--- some list management macros. Definition at line 1594 of file chan_sip.c. Referenced by __sip_ack(), __sip_destroy(), and retrans_pkt(). |
|
|
Video codecs from H.261 thru AST_FORMAT_MAX_VIDEO Definition at line 154 of file chan_sip.c. |
|
|
Definition at line 357 of file chan_sip.c. 00357 { 00358 CAN_NOT_CREATE_DIALOG, 00359 CAN_CREATE_DIALOG, 00360 CAN_CREATE_DIALOG_UNSUPPORTED_METHOD, 00361 };
|
|
|
Authentication result from check_auth* functions.
Definition at line 332 of file chan_sip.c. 00332 { 00333 AUTH_DONT_KNOW = -100, /*!< no result, need to check further */ 00334 /* XXX maybe this is the same as AUTH_NOT_FOUND */ 00335 00336 AUTH_SUCCESSFUL = 0, 00337 AUTH_CHALLENGE_SENT = 1, 00338 AUTH_SECRET_FAILED = -1, 00339 AUTH_USERNAME_MISMATCH = -2, 00340 AUTH_NOT_FOUND = -3, /* returned by register_verify */ 00341 AUTH_FAKE_AUTH = -4, 00342 AUTH_UNKNOWN_DOMAIN = -5, 00343 };
|
|
|
Modes for SIP domain handling in the PBX.
Definition at line 666 of file chan_sip.c. 00666 { 00667 SIP_DOMAIN_AUTO, /*!< This domain is auto-configured */ 00668 SIP_DOMAIN_CONFIG, /*!< This domain is from configuration */ 00669 };
|
|
|
States for the INVITE transaction, not the dialog.
Definition at line 243 of file chan_sip.c. 00243 { 00244 INV_NONE = 0, /*!< No state at all, maybe not an INVITE dialog */ 00245 INV_CALLING = 1, /*!< Invite sent, no answer */ 00246 INV_PROCEEDING = 2, /*!< We got/sent 1xx message */ 00247 INV_EARLY_MEDIA = 3, /*!< We got 18x message with to-tag back */ 00248 INV_COMPLETED = 4, /*!< Got final response with error. Wait for ACK, then CONFIRMED */ 00249 INV_CONFIRMED = 5, /*!< Confirmed response - we've got an ack (Incoming calls only) */ 00250 INV_TERMINATED = 6, /*!< Transaction done - either successful (AST_STATE_UP) or failed, but done 00251 The only way out of this is a BYE from one side */ 00252 INV_CANCELLED = 7, /*!< Transaction cancelled by client or server in non-terminated state */ 00253 };
|
|
|
Definition at line 270 of file chan_sip.c. 00270 { 00271 PARSE_REGISTER_FAILED, 00272 PARSE_REGISTER_UPDATE, 00273 PARSE_REGISTER_QUERY, 00274 };
|
|
|
Parameters to know status of transfer.
Definition at line 842 of file chan_sip.c. 00842 { 00843 REFER_IDLE, /*!< No REFER is in progress */ 00844 REFER_SENT, /*!< Sent REFER to transferee */ 00845 REFER_RECEIVED, /*!< Received REFER from transferrer */ 00846 REFER_CONFIRMED, /*!< Refer confirmed with a 100 TRYING */ 00847 REFER_ACCEPTED, /*!< Accepted by transferee */ 00848 REFER_RINGING, /*!< Target Ringing */ 00849 REFER_200OK, /*!< Answered by transfer target */ 00850 REFER_FAILED, /*!< REFER declined - go on */ 00851 REFER_NOAUTH /*!< We had no auth for REFER */ 00852 };
|
|
|
Authentication types - proxy or www authentication.
Definition at line 326 of file chan_sip.c. 00326 { 00327 PROXY_AUTH = 407, 00328 WWW_AUTH = 401, 00329 };
|
|
|
Definition at line 235 of file chan_sip.c. 00235 { 00236 AST_SUCCESS = 0, 00237 AST_FAILURE = -1, 00238 };
|
|
|
SIP Request methods known by Asterisk.
|