|
|
|
@ -103,8 +103,8 @@
|
|
|
|
|
* If someone registers a SIPS uri, this forces us to set up a TLS connection back.
|
|
|
|
|
* \todo Add TCP/TLS information to function SIPPEER and SIPCHANINFO
|
|
|
|
|
* \todo If tcpenable=yes, we must open a TCP socket on the same address as the IP for UDP.
|
|
|
|
|
* The tcpbindaddr config option should only be used to open ADDITIONAL ports
|
|
|
|
|
* So we should propably go back to
|
|
|
|
|
* The tcpbindaddr config option should only be used to open ADDITIONAL ports
|
|
|
|
|
* So we should propably go back to
|
|
|
|
|
* bindaddr= the default address to bind to. If tcpenable=yes, then bind this to both udp and TCP
|
|
|
|
|
* if tlsenable=yes, open TLS port (provided we also have cert)
|
|
|
|
|
* tcpbindaddr = extra address for additional TCP connections
|
|
|
|
@ -137,7 +137,7 @@
|
|
|
|
|
* \todo Default transports are set to UDP, which cause the wrong behaviour when contacting remote
|
|
|
|
|
* devices directly from the dialplan. UDP is only a fallback if no other method works,
|
|
|
|
|
* in order to be compatible with RFC2543 (SIP/1.0) devices. For transactions that exceed the
|
|
|
|
|
* MTU (like INIVTE with video, audio and RTT) TCP should be preferred.
|
|
|
|
|
* MTU (like INIVTE with video, audio and RTT) TCP should be preferred.
|
|
|
|
|
*
|
|
|
|
|
* When dialling unconfigured peers (with no port number) or devices in external domains
|
|
|
|
|
* NAPTR records MUST be consulted to find configured transport. If they are not found,
|
|
|
|
@ -619,7 +619,7 @@ static int mwi_expiry = DEFAULT_MWI_EXPIRY;
|
|
|
|
|
#define SIP_MAX_HEADERS 64 /*!< Max amount of SIP headers to read */
|
|
|
|
|
#define SIP_MAX_LINES 64 /*!< Max amount of lines in SIP attachment (like SDP) */
|
|
|
|
|
#define SIP_MIN_PACKET 4096 /*!< Initialize size of memory to allocate for packets */
|
|
|
|
|
#define MAX_HISTORY_ENTRIES 50 /*!< Max entires in the history list for a sip_pvt */
|
|
|
|
|
#define MAX_HISTORY_ENTRIES 50 /*!< Max entires in the history list for a sip_pvt */
|
|
|
|
|
|
|
|
|
|
#define INITIAL_CSEQ 101 /*!< Our initial sip sequence number */
|
|
|
|
|
|
|
|
|
@ -641,7 +641,7 @@ static struct ast_jb_conf global_jbconf; /*!< Global jitterbuffer configuration
|
|
|
|
|
static const char config[] = "sip.conf"; /*!< Main configuration file */
|
|
|
|
|
static const char notify_config[] = "sip_notify.conf"; /*!< Configuration file for sending Notify with CLI commands to reconfigure or reboot phones */
|
|
|
|
|
|
|
|
|
|
#define RTP 1
|
|
|
|
|
#define RTP 1
|
|
|
|
|
#define NO_RTP 0
|
|
|
|
|
|
|
|
|
|
/*! \brief Authorization scheme for call transfers
|
|
|
|
@ -730,7 +730,7 @@ static const struct cfsubscription_types {
|
|
|
|
|
const char * const text;
|
|
|
|
|
} subscription_types[] = {
|
|
|
|
|
{ NONE, "-", "unknown", "unknown" },
|
|
|
|
|
/* RFC 4235: SIP Dialog event package */
|
|
|
|
|
/* RFC 4235: SIP Dialog event package */
|
|
|
|
|
{ DIALOG_INFO_XML, "dialog", "application/dialog-info+xml", "dialog-info+xml" },
|
|
|
|
|
{ CPIM_PIDF_XML, "presence", "application/cpim-pidf+xml", "cpim-pidf+xml" }, /* RFC 3863 */
|
|
|
|
|
{ PIDF_XML, "presence", "application/pidf+xml", "pidf+xml" }, /* RFC 3863 */
|
|
|
|
@ -786,13 +786,13 @@ enum sipregistrystate {
|
|
|
|
|
|
|
|
|
|
REG_STATE_REGISTERED, /*!< Registered and done */
|
|
|
|
|
|
|
|
|
|
REG_STATE_REJECTED, /*!< Registration rejected *
|
|
|
|
|
REG_STATE_REJECTED, /*!< Registration rejected
|
|
|
|
|
* \note only used when the remote party has an expire larger than
|
|
|
|
|
* our max-expire. This is a final state from which we do not
|
|
|
|
|
* recover (not sure how correctly).
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
REG_STATE_TIMEOUT, /*!< Registration timed out *
|
|
|
|
|
REG_STATE_TIMEOUT, /*!< Registration timed out
|
|
|
|
|
* \note XXX unused */
|
|
|
|
|
|
|
|
|
|
REG_STATE_NOAUTH, /*!< We have no accepted credentials
|
|
|
|
@ -907,7 +907,7 @@ static const struct cfsip_methods {
|
|
|
|
|
{ SIP_UNKNOWN, RTP, "-UNKNOWN-", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_RESPONSE, NO_RTP, "SIP/2.0", CAN_NOT_CREATE_DIALOG },
|
|
|
|
|
{ SIP_REGISTER, NO_RTP, "REGISTER", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_OPTIONS, NO_RTP, "OPTIONS", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_OPTIONS, NO_RTP, "OPTIONS", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_NOTIFY, NO_RTP, "NOTIFY", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_INVITE, RTP, "INVITE", CAN_CREATE_DIALOG },
|
|
|
|
|
{ SIP_ACK, NO_RTP, "ACK", CAN_NOT_CREATE_DIALOG },
|
|
|
|
@ -924,7 +924,7 @@ static const struct cfsip_methods {
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/*! Define SIP option tags, used in Require: and Supported: headers
|
|
|
|
|
We need to be aware of these properties in the phones to use
|
|
|
|
|
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
|
|
|
|
|