Commit Graph

495 Commits

Author SHA1 Message Date
paulc 13547a1ff3 Added settings to allow matching inbound calls from broken registrars.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5606 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-05 20:45:29 +00:00
marian acafd80e98 Reset connect retry counter when received data not when connect succeeds. Fixes forever connect retry when connection is closed after accepted without receiving any data. Improved debug.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5604 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-02 14:28:44 +00:00
marian c367c116fb Check ssl availability. Don't bind a tls listener if the context is not valid. Don't try to connect a tls transport if ssl is not available.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5601 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-02 11:56:53 +00:00
marian 9a13938320 Fixed bug: start transport worker thread after init to make sure data is initialized. Fixes incoming tcp transport race condition.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5600 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-02 11:11:38 +00:00
marian a0b11fc63d Propagate non-retryable send errors to transaction. Terminate outgoing transactions in Trying state if first send attempt failed. Reset failed message party otherwise.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5599 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-02 10:01:39 +00:00
paulc 78201aa0be Added unHexify version that automatically detects separator presence.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5596 acf43c95-373e-0410-b603-e72c3f656dc1
2013-08-01 14:52:52 +00:00
marian cfa0be7eb2 Incoming registration NAT detection: don't check port for non udp parties.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5588 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-23 14:39:46 +00:00
paulc d8b1569efd Copy a SIP remote party change to the "address" parameter.
Add change information for address and contact in the call.update message.
Delay updating channel parameters until the reINVITE is accepted.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5583 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-16 13:15:40 +00:00
paulc 3cf42e2828 Use Alarm() in places that could prevent normal operation.
This allows sending SNMP traps when parts of the service become non-operational.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5569 acf43c95-373e-0410-b603-e72c3f656dc1
2013-07-08 12:21:26 +00:00
paulc a5bac6672b Added settings for the SIP T1 and T4 timers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5533 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-07 15:18:42 +00:00
paulc 55f287abd5 Copy SIP authentication headers to Yate messages when foreign auth is enabled.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5532 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-07 15:17:19 +00:00
paulc 5cbae1781a Populate user.register with custom SIP headers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5526 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-04 14:47:06 +00:00
paulc 2b12d13fa7 Allow returning a message body from a generic SIP handler.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5525 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-04 14:46:03 +00:00
paulc 5139fb89c5 Added possibility to set credentials in generic UAC transactions.
SIP headers and body can be returned from generic UAC transactions.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5524 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-04 14:45:35 +00:00
paulc d0aba1a525 Apply NAT detection only when registering a SIP or SIPS URI.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5523 acf43c95-373e-0410-b603-e72c3f656dc1
2013-06-04 14:44:23 +00:00
paulc 7f4b7821f2 Don't warn if no Contact is received in a 387 SIP answer, that's used for something else.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5509 acf43c95-373e-0410-b603-e72c3f656dc1
2013-05-28 16:59:13 +00:00
paulc b8d4a515d2 Reply to SIP OPTIONS with 503 is engine is exiting, congested or rejecting calls.
Allow the OPTIONS method to be handled generically.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5502 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-29 11:16:02 +00:00
paulc 11b90dae77 Added support (default enabled) to run generic SIP messages in their own thread.
Fixed the raw text body encoding.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5453 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:34:50 +00:00
paulc 3b49b78ecb Added a shared static list of Atom strings and an YATOM macro.
This speeds up signifficantly the Yate RTTI on compilers that HAVE_BLOCK_RETURN.
Made the String comparison operator inline to shave off a few cycles.
Fast handle the comparison in identity case.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5449 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 13:19:14 +00:00
paulc e08e529ecf Allow specifying the encoding for binary MIME bodies in SIP.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5442 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 12:51:38 +00:00
paulc cabeade94e Made the SIP "expires" parameter available in user.auth message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5440 acf43c95-373e-0410-b603-e72c3f656dc1
2013-04-12 12:48:52 +00:00
paulc b19a205aa1 Added configuration to disable the preventive BYE when CANCELing an early dialog.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5420 acf43c95-373e-0410-b603-e72c3f656dc1
2013-03-15 16:24:14 +00:00
paulc d27a157208 Send UDP keepalive even for SIP accounts without registration.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5328 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-20 15:29:23 +00:00
marian 3f794a2f53 Create general listener from 'listener general' section if the section is present in config to mantain compatibility broken in rev. 8084.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5325 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-19 08:50:10 +00:00
paulc 7a3445a4ee Use a smarter SIP registration adjustment interval to avoid trouble with some providers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5320 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-09 13:08:30 +00:00
paulc 62bbf17bfc Fixed handling of automatic REGISTER local address broken by a previous revision.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5317 acf43c95-373e-0410-b603-e72c3f656dc1
2012-11-01 15:00:32 +00:00
marian 451cf8fa69 Moved listener general config in 'general' section. Allow it to be an udp/tcp/tls listener. Removed 'listener general' section from config.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5310 acf43c95-373e-0410-b603-e72c3f656dc1
2012-10-29 15:41:51 +00:00
paulc adcdd500a9 Allow setting custom headers in SIP (de)registration answers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5288 acf43c95-373e-0410-b603-e72c3f656dc1
2012-10-02 13:41:31 +00:00
marian 94b6e06060 Make sure the user data pointer carried by handled message is a CallEndpoint one.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5287 acf43c95-373e-0410-b603-e72c3f656dc1
2012-10-01 11:00:30 +00:00
paulc a779f83eb0 Changed the handling of the "timeout" parameter so it (re)starts when call is answered.
Added "maxcall" and "timeout" setting and handling to channels that lacked it.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5282 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-25 09:39:49 +00:00
marian ec97de2487 Honor detected method when sending DTMFs.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5277 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-20 09:29:28 +00:00
marian 08654d5b53 Override channel dtmf methods in chan.dtmf only if explicitly requested.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5276 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-19 14:11:11 +00:00
marian 0583b5cdc5 Changed info allowed debug message level. Show it when compiled with xdebug.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5266 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-18 11:14:58 +00:00
marian 2030126a5f Allow send dtmf method(s) to be configurable. Detect remote party INFO support from 'Allow' header.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5264 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-18 08:40:29 +00:00
marian c8466bc285 Fixed bug: don't change party when processing inactive events to avoid overriding it with a wrong one. Moved party changed debug message to DebugInfo level.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5251 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-05 10:19:37 +00:00
marian a77586a7a9 Added configurable option (defaults to disable) used to change remote party's ip/port when a channel receives a response or a new transaction from a different address.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5250 acf43c95-373e-0410-b603-e72c3f656dc1
2012-09-03 09:41:46 +00:00
oana 4b096a8081 Added separate setting for activating the SIP flood protection mechanism.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5234 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-20 11:06:06 +00:00
oana ca3528c6e2 Set allowed number of simultaneous calls from configuration files. If not set, default to the maxchans setting in yate.conf.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5227 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-17 13:29:31 +00:00
oana 9ad504a992 Added mechanism to drop INVITE/REGISTER/SUBSCRIBE/OPTIONS messages when detecting a flood.
Other messages, as well as reINVITEs are still allowed.
Note: the meaning of the floodevents setting from ysipchan.conf has changed: now it sets the threshold for dropping messages.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5226 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-17 12:31:07 +00:00
oana 3c8f472bb9 Fix bug: first check if a message is a re-INVITE and handle it if required, otherwise check if the INVITE can be accepted.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5223 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-15 12:44:53 +00:00
paulc 063adacfce Added support for updating remote dialog and party on reINVITE.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5216 acf43c95-373e-0410-b603-e72c3f656dc1
2012-08-03 21:20:10 +00:00
paulc bd9ac32a86 Use setMedia(0) instead of clearEndpoint() so chan.rtp with terminate=true is emitted when changing media in SIP.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5189 acf43c95-373e-0410-b603-e72c3f656dc1
2012-07-09 13:41:14 +00:00
paulc 63981eda80 Don't copy the "handlers" parameter from user.auth
git-svn-id: http://yate.null.ro/svn/yate/trunk@5118 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-14 17:58:58 +00:00
paulc bf57830c7f Added possibility to track message progress through handlers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5107 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-12 23:47:01 +00:00
paulc 257d20c738 Protect the generic methods list with the global mutex.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5106 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-12 08:45:39 +00:00
paulc 87b5b84721 Properly map privacy=full back to SIP Remote-Party-ID and Privacy headers.
Got rid of a few useless String allocations.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5090 acf43c95-373e-0410-b603-e72c3f656dc1
2012-06-04 12:06:33 +00:00
paulc e7c7b6ceba Allow setting the external address of a NAT in the SDP sent by SIP.
git-svn-id: http://yate.null.ro/svn/yate/trunk@5058 acf43c95-373e-0410-b603-e72c3f656dc1
2012-05-11 21:33:21 +00:00
paulc 3e24933763 Add SIP call parameters before performing authentication.
This allows user.auth to overwrite rather than duplicate parameters.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5055 acf43c95-373e-0410-b603-e72c3f656dc1
2012-05-11 12:57:16 +00:00
paulc dcfa4cc8e3 Execute a hangup immediately if received a CANCEL message.
This fixes the total duration of a cancelled call in slow routing scenarios.


git-svn-id: http://yate.null.ro/svn/yate/trunk@5017 acf43c95-373e-0410-b603-e72c3f656dc1
2012-04-21 11:12:35 +00:00
paulc b682d50334 Make sure we disconnect a SIP call on all branches of hangup.
Fixes BYE without CANCEL not being propagated.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4994 acf43c95-373e-0410-b603-e72c3f656dc1
2012-04-04 17:36:34 +00:00
paulc 85b209df57 Map received disconnect cause "noanswer" to 480 Temporarily Unavailable.
Code 487 should be used only when a transaction is CANCELed.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4984 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-29 16:34:32 +00:00
paulc f93fe6bc0d Allow the "number" parameter to be processed in the user.auth message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4983 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-27 15:16:42 +00:00
paulc ab2222ef67 Changed the way SIP authentication is performed by UAS.
This allows implementing custom authentication schemes.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4975 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-26 00:25:00 +00:00
paulc 455960a715 Added possibility to return custom SIP failure from user.auth message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4971 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-19 17:37:21 +00:00
paulc 2c049bfbd1 Added the SIP user agent as "device" parameter of the user.auth message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4970 acf43c95-373e-0410-b603-e72c3f656dc1
2012-03-18 16:57:28 +00:00
paulc e1aada00d3 Clear any local SIP media channels before populating the 200 answer to BYE.
This allows returning P-RTP-Stat when the other party initiates the hangup.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4860 acf43c95-373e-0410-b603-e72c3f656dc1
2012-02-08 15:56:00 +00:00
paulc 2256598929 Set the custom 3xx redirect code in the channel's reason too, not only in SIP message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4762 acf43c95-373e-0410-b603-e72c3f656dc1
2011-12-15 10:06:40 +00:00
paulc a61fcc1723 Forward the SIP audio change information to the peer channel.
Change SIP media format if the peer changed.
This allows switching to T.38 when RTP is proxied.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4712 acf43c95-373e-0410-b603-e72c3f656dc1
2011-11-18 13:01:34 +00:00
marian 2c3127876c Add login/logout failure error to user.notify message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4677 acf43c95-373e-0410-b603-e72c3f656dc1
2011-11-04 15:30:55 +00:00
paulc cd83ba0fce Added new static mutex to protect channel disconnect parameters during access.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4662 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-28 18:23:26 +00:00
paulc 702c82ede6 Fixed SIP status command broken by SVN commit 3776.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4661 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-28 17:30:45 +00:00
paulc 65ee32cc00 Added hack to preserve the RTP session when just the address has changed.
Can be used together with the hack for ignoring port change.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4639 acf43c95-373e-0410-b603-e72c3f656dc1
2011-10-05 20:43:25 +00:00
paulc 42772c000d Allow global calls limits to be reloaded.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4636 acf43c95-373e-0410-b603-e72c3f656dc1
2011-09-26 14:55:42 +00:00
paulc 8c230e1d21 Fixed a few errors exposed by -Wunused-but-set-variable.
Removed some leftover variables exposed by same new compiler check.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4589 acf43c95-373e-0410-b603-e72c3f656dc1
2011-09-08 10:36:32 +00:00
paulc ca1b7c21d8 At end of routing check if the INVITE transaction still exists.
This allows proper processing of an early CANCEL while routing is in progress.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4573 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-29 09:42:30 +00:00
marian eb783b04e6 Added extra check to avoid building a sip party with invalid remote address.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4566 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-24 15:03:23 +00:00
marian 57bff41ad4 String to integer conversion can now check the result against allowed min/max values. Use it in sip module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4562 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-23 15:14:28 +00:00
marian 5845857da0 Double the timeout period before using it. Decreased retransmission counters default values to keep the same overall timeout.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4559 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-22 15:16:26 +00:00
marian df8ec5d64d Made configurable the number of times to transmit a request or a final response when retransmission is required.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4556 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-22 14:11:51 +00:00
marian fe2891e3cc Fixed bug: return proxy address when a line's domain is requested and there is no domain or registrar configured. This bug was introduced in SVN Rev. 4493.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4546 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-18 11:29:54 +00:00
marian e6b65c4014 Added configurable certificate file to present on outgoing TLS connections.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4545 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-18 10:49:27 +00:00
marian 161554d22d Always reset a line's party when logout is required in user.login message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4541 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-11 14:52:32 +00:00
marian fe5e9943fd Properly handle host and port in sip generate message handler. Use default when missing.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4540 acf43c95-373e-0410-b603-e72c3f656dc1
2011-08-10 11:22:18 +00:00
marian d8b503eb25 Listener type now defaults to udp if invalid. Handle listener type change in config.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4531 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-29 11:03:19 +00:00
marian c90d715654 Build the tls listener even if context is empty. Added debug.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4526 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-27 09:27:01 +00:00
marian 3e40ef43a6 Return line's resolved party address/port to match it for incoming requests.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4523 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-25 13:45:43 +00:00
paulc 7afc6c6532 Added missing ISUP content to disconnection SIP messages (BYE, CANCEL, 4xx/5xx).
git-svn-id: http://yate.null.ro/svn/yate/trunk@4521 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-21 17:27:29 +00:00
marian 25a1c95224 Made virtual base class destructor.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4496 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-12 15:21:39 +00:00
marian 34924962aa Added support for tcp/tls sip transport. The sip module can now use (bind on) more then one address for udp.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4493 acf43c95-373e-0410-b603-e72c3f656dc1
2011-07-12 14:55:02 +00:00
paulc 31b8230290 Emit new message "user.authfail" for paswword mismatch for existing users.
Use that message in the ban script.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4451 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-10 13:39:24 +00:00
paulc 9ddec50e94 Optimized const String usage in the SIP module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4431 acf43c95-373e-0410-b603-e72c3f656dc1
2011-06-03 15:14:38 +00:00
paulc e2dac8d2a2 Pick up any new formats (even if not negotiated before) in RTP forward mode.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4417 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-28 12:43:15 +00:00
paulc db9d880bc1 Add the billid parameter to SIP generated user.auth messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4396 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-19 11:21:30 +00:00
paulc d0d8c101ad Added support for altering the reason and error code of SIP Registrar answers.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4382 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-17 11:12:37 +00:00
paulc f214a2b733 Copy UAS SIP headers between user.register and REGISTER messages and answers.
In UAC mode copy returned headers from REGISTER answer to user.notify message.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4380 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-17 10:20:16 +00:00
paulc 34c79e5cd6 Use the proxy address if domain is not set for outbound calls.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4372 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-12 20:55:26 +00:00
paulc 09a9c34518 Allow setting arbitrary SIP headers in rejected calls.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4371 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-12 20:29:27 +00:00
paulc bba5f88ac9 Allow copying parameters starting with authfail_ from failed user.auth messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4370 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-12 19:26:15 +00:00
paulc 28eeb05ffe Added more mappings for SIP responses to improve mapping to ISUP and ISDN.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4360 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-05 12:43:40 +00:00
paulc bcc3792cfc Base64 decode and encode binary bodies in generic SIP messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4356 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-04 11:07:05 +00:00
marian 5eb536aaa4 Changed the name of the functions encoding and decoding isup bodies to fix scope related compile errors in VC++.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4355 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-04 10:47:17 +00:00
paulc afc6130d71 Renamed SIP parameter "transport" to "ip_transport" because of collision with audio media transport.
Fixed lack of media bug introduced by Rev 4349.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4353 acf43c95-373e-0410-b603-e72c3f656dc1
2011-05-04 09:01:43 +00:00
paulc 5aa046f6bb Detect generic SIP messages coming from registered accounts, set in_line and skip authentication if so.
Decode more info from the incoming generic messages.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4349 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-28 10:36:48 +00:00
paulc 9006eefd04 Fix the hangup of incoming SIP calls that didn't had the dialog tag updated.
This could happen if a call was dropped immediately after being answered.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4333 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-20 18:41:14 +00:00
paulc 3e6e71a2e3 Fixed a number of concurrency issues regarding reINVITE processing.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4332 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-20 18:38:30 +00:00
paulc 26e0e1021b Terminate a SIP call for which we had a timeout on a reINVITE as media state becomes uncertain.
Bug report and patch provided by Matthew.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4310 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-18 11:17:50 +00:00
paulc c4627996d9 Clear the initiated reINVITE transaction on completion, allow further reINVITEs.
Bug report and patch provided by Matthew.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4309 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-18 11:03:23 +00:00
paulc 3c4e6a01b6 The default RFC 2833 payload can be configured and overriden per call.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4287 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-12 15:41:49 +00:00
paulc 84f04adaa9 Decode MIME type message/sipfrag as lines of text.
Allow generic processing of SIP INFO messages that are not used for DTMFs.
Properly add lines of text bodies to generic SIP messages.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4273 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-07 12:16:12 +00:00
paulc f9469cb68f Honor an earlymedia=false parameter even when using RTP forwarding.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4267 acf43c95-373e-0410-b603-e72c3f656dc1
2011-04-06 09:13:16 +00:00
oana 5a1837a521 Fixed checking if a engine.status module is indeed intended for that module. Fixed bug: don't print for a second time the status message for IAX module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4221 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-28 12:40:44 +00:00
paulc edf28bc0c7 Sanitize the custom SIP cause codes, must be >= 300.
Allow altering the SIP code in the chan.disconnected message.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4195 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-18 14:03:42 +00:00
paulc 5278f71b7f Leave the tel: URIs untouched when sent on an outbound SIP call.
Also don't add sip: in front of sip:number URIs (we turned to sip:sip:number).


git-svn-id: http://yate.null.ro/svn/yate/trunk@4194 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-18 13:14:36 +00:00
paulc c9a2c40f32 Moved the post-disconnect hooking code from ysigchan to the Channel class.
Added capability of sending arbitrary SIP headers on call disconnect.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4193 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-17 20:57:34 +00:00
paulc 6a09c86bad Added flags that control how SIP message components are automatically completed.
These flags can be configured per engine and can be overridden in some messages by setting an "xsip_flags" parameter.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4161 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-07 13:50:59 +00:00
paulc 11e1b27e83 Added capability to set response code and additional parameters when redirecting a SIP call as UAS.
git-svn-id: http://yate.null.ro/svn/yate/trunk@4149 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-02 16:58:22 +00:00
paulc 3c724527a4 Copy SIP headers and decode ISUP (SIP-T/SIP-I) body to disconnect parameters.
Parameters are put in local chan.hangup and peer's chan.disconnected messages.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4142 acf43c95-373e-0410-b603-e72c3f656dc1
2011-03-01 16:08:52 +00:00
paulc 0ff37e944c Translate between SIP Remote-Party-ID fields "party" and "id-type" and Yate parameters "remote_party" and "remote_id_type".
git-svn-id: http://yate.null.ro/svn/yate/trunk@4083 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-28 13:53:30 +00:00
paulc 7c4801873f Automatically copy disconnect parameters to the chan.hangup message.
Provide those parameters to the peer call endpoint when disconnecting it.
Add numeric cause_q931 to disconnect params of h323chan.


git-svn-id: http://yate.null.ro/svn/yate/trunk@4052 acf43c95-373e-0410-b603-e72c3f656dc1
2011-01-21 10:21:01 +00:00
oana 8fc205bb13 Changed the format of the accounts, links and interfaces status reported through engine.status. Added accountUsername OID. Modified the monitoring module to deal with the status change and the need to handle the accountUsername OID information.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3938 acf43c95-373e-0410-b603-e72c3f656dc1
2010-12-09 14:30:47 +00:00
oana cda9ed670f Added SNMP support.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3776 acf43c95-373e-0410-b603-e72c3f656dc1
2010-11-03 16:27:30 +00:00
paulc 7b3500fa58 Added thread priority setting for the SIP module.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3753 acf43c95-373e-0410-b603-e72c3f656dc1
2010-10-25 13:13:35 +00:00
paulc b36f9c8848 Made several Regexps static const so they are compiled only once, speeds up processing.
One instance spotted by Allan Sandfeld Jensen, others by grep.


git-svn-id: http://yate.null.ro/svn/yate/trunk@3389 acf43c95-373e-0410-b603-e72c3f656dc1
2010-06-17 11:08:00 +00:00
paulc f84dfdba95 Check the line before using it to alter the domain.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3245 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-26 21:30:28 +00:00
paulc 8ccfc1641c Added support for detecting the domain of incoming SIP requests, gets copied to the generic "domain" parameter.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3242 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-26 13:38:03 +00:00
paulc 551731cd33 Allow setting the outbound SIP proxy as host:port
git-svn-id: http://yate.null.ro/svn/yate/trunk@3209 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-19 13:25:08 +00:00
paulc aaeed9c8be Emit a BYE only if we have a SIP dialog - either early or established.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3175 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-08 22:49:58 +00:00
paulc 8145b0fe96 Store initially guessed local address, re-register only if it changed.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3172 acf43c95-373e-0410-b603-e72c3f656dc1
2010-04-07 11:27:30 +00:00
paulc ebaec41257 Lock the module while accessing or changing SIP dialog information.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3125 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-12 16:25:37 +00:00
paulc 6e3c0407d0 Copy RTP stats in SIP to the CDR and to BYE or 200 message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3106 acf43c95-373e-0410-b603-e72c3f656dc1
2010-03-03 19:05:01 +00:00
paulc ccdfe0c691 Preserve the Call-ID across REGISTER messages in a single login session.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3096 acf43c95-373e-0410-b603-e72c3f656dc1
2010-02-23 18:22:59 +00:00
paulc b6885511ef Add the REGISTER request URI and Call-ID to the user.(un)register messages.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3063 acf43c95-373e-0410-b603-e72c3f656dc1
2010-02-02 23:59:54 +00:00
paulc 6eeb68bb1a Added Channel::initChan() method to add the channel to the driver explicitely, after the object is fully constructed.
git-svn-id: http://yate.null.ro/svn/yate/trunk@3033 acf43c95-373e-0410-b603-e72c3f656dc1
2010-01-26 10:31:32 +00:00
paulc 5cde9ef2be Automatically reset the maxcall timer when entering "answered" status.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2991 acf43c95-373e-0410-b603-e72c3f656dc1
2009-12-18 19:08:41 +00:00
paulc 05fa7aca7c Copy by default some parameters from call.execute to chan.startup of outgoing calls.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2964 acf43c95-373e-0410-b603-e72c3f656dc1
2009-11-25 18:34:54 +00:00
paulc b0c8da2dc0 Emit call.update only when the SIP dialog tags have changed.
Avoids flooding the system with useless call.update and call.cdr messages.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2874 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-21 14:10:47 +00:00
paulc 75b98358a7 Added an extra parameter to SDPSession::updateFormats() allowing it to add or remove media.
Use the SDPSession::updateFormats() method in SIP instead of reimplementing it.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2873 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-20 22:54:56 +00:00
paulc ea0b4867a7 Chain the debugging of the SIP engine to the SIP channels plugin.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2867 acf43c95-373e-0410-b603-e72c3f656dc1
2009-10-16 12:04:32 +00:00
paulc aa143b4e34 Fixed the way the SIP transaction answer code is returned to xsip.generate, it wasn't dealing well with timeouts.
While waiting for the arbitrary transaction to finish call Thread::idle() instead of yield().


git-svn-id: http://yate.null.ro/svn/yate/trunk@2845 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-18 11:17:50 +00:00
paulc d2418f656d Dispatch a chan.rtp with terminate=true when a SIP media is removed or replaced.
Added several channel parameters to the chan.rtp message.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2839 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 18:52:53 +00:00
paulc 381bb557b6 Provide the entire SDPMedia to the mediaChanged() mthod, not only the name of the media.
Add the "rtpid" parameter to the chan.rtp message if the media id() is available.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2832 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-14 09:06:16 +00:00
paulc 4f0c854312 Use the newly added SIPDialog methods.
Identify the dialogs RFC 3261 style (only by Call-ID, From-tag, To-tag) ignoring the From-URI and To-URI.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2824 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-06 15:00:22 +00:00
paulc 22cf311a50 Fixed a few bugs introduced by Rev. 2805: Clear the data endpoints when the transport info changes, use the proper default audio formats when none specified.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2818 acf43c95-373e-0410-b603-e72c3f656dc1
2009-09-01 15:18:21 +00:00
paulc 063f155ef1 Use the new SDP library in SIP and MGCP.
The PSTN channel can negotiate RTP forwarding if the circuits are terminated on a MGCP gateway.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2805 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-24 12:09:34 +00:00
paulc 88543f0ef0 Process a 2xx answer to a forked SIP call after changing the disalog tag to match.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2792 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-14 12:52:40 +00:00
paulc 8020ea08ab In the outbound SIP call legs put the generated Call-ID in chan.startup to be available for CDR building.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2788 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-13 11:39:44 +00:00
paulc e9aafe7511 Added code and setting to prevent rebuilding the RTP when only the remote port has changed in the SDP offer.
This can prevent a neverending sequence of reINVITEs, each end trying to adjust to the changes of the other.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2786 acf43c95-373e-0410-b603-e72c3f656dc1
2009-08-12 15:18:36 +00:00
paulc ebd41dfaec Use the platform idle time in various sleeps in SIP and Jabber.
Fixed a compiler warning about the copy constructor of Mutex and 
Semaphore.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2763 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-22 15:41:28 +00:00
paulc aae55c9a65 Obey expires interval enforced by the SIP registrar.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2749 acf43c95-373e-0410-b603-e72c3f656dc1
2009-07-07 10:29:32 +00:00
paulc 70445d56b6 New parameter "rtp_localip" overrides configured local RTP address for outbound SIP call legs.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2740 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-26 15:33:22 +00:00
paulc 5499650213 Changed thread names to be uniform and easily readable.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2733 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-22 14:48:26 +00:00
paulc 65fa4adbd4 Fixed warnings and a few minor bugs when compiling on a different architecture.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2724 acf43c95-373e-0410-b603-e72c3f656dc1
2009-06-19 11:19:20 +00:00
paulc 6c62be3718 Fixed filtering of SDP parameters in case of using RTP forward.
The local RTP case was fixed in Rev. 2606.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2654 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-27 14:34:35 +00:00
paulc a5ba174c12 Add the sip: protocol on outgoing calls if none is specified.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2648 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-22 18:15:48 +00:00
paulc 207ce16736 Deal better with SIP transaction timeouts, map 408 to "noconn" but add raw cause code to disconnect() and chan.hangup message.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2621 acf43c95-373e-0410-b603-e72c3f656dc1
2009-05-10 11:50:00 +00:00
paulc 419bbb3123 Fixed parsing of non-RTP transports in SDP as those don't use payload codes or format maps.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2606 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-30 12:32:39 +00:00
paulc ff612b95d4 If an early RTP start is requested but media list is unknown build a best guess.
Patch by Peter Olsson - support for 3Com NBX PBX.


git-svn-id: http://yate.null.ro/svn/yate/trunk@2604 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-29 22:07:44 +00:00
paulc c9cdebef36 Support for RFC 4568 (SRTP security descriptors in SIP/SDP).
git-svn-id: http://yate.null.ro/svn/yate/trunk@2557 acf43c95-373e-0410-b603-e72c3f656dc1
2009-04-01 20:16:36 +00:00
paulc 5d0ad3e90b Support for RFC 3323 SIP Privacy header in addition to Remote-Party-ID.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2555 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-31 20:23:46 +00:00
paulc 57ca222b94 Made generation of outgoing INVITE Diversion header more flexible.
git-svn-id: http://yate.null.ro/svn/yate/trunk@2553 acf43c95-373e-0410-b603-e72c3f656dc1
2009-03-30 10:29:29 +00:00