Fathy,
You may wish to re-read the RFC3261, there is not any mention of disallowing the apostrophe, in fact it is called out as being included...
RFC 3261 refers to URI specification in this section"
RFC 3261 SIP: Session Initiation Protocol June 2002
19.1.2 Character Escaping Requirements
dialog
reg./redir.
Contact/
default Req.-URI To From Contact R-R/Route external
user -- o o o o
o o
password -- o o o o o
o
host -- m m m m
m m
port (1) o - - o
o o
user-param ip o o o o o
o
method INVITE - - - - -
o
maddr-param -- o - - o o
o
ttl-param 1 o - - o -
o
transp.-param (2) o - - o o
o
lr-param -- o - - - o
o
other-param -- o o o o o
o
headers -- - - - o -
o
(1): The default port value is transport and scheme dependent. The
default is 5060 for sip: using UDP, TCP, or SCTP. The default is
5061 for sip: using TLS over TCP and sips: over TCP.
(2): The default transport is scheme dependent. For sip:, it is UDP.
For sips:, it is TCP.
Table 1: Use and default values of URI components for SIP header
field values, Request-URI and references
SIP follows the requirements and guidelines of RFC 2396 [5] when
defining the set of characters that must be escaped in a SIP URI, and
uses its ""%" HEX HEX" mechanism for escaping. From RFC 2396 [5]:
"
RFC 2396 URI Generic Syntax August 1998
Characters in the "reserved" set are not reserved in all contexts.
The set of characters actually reserved within any given URI
component is defined by that component. In general, a character is
reserved if the semantics of the URI changes if the character is
replaced with its escaped US-ASCII encoding.
2.3. Unreserved Characters
Data characters that are allowed in a URI but do not have a reserved
purpose are called unreserved. These include upper and lower case
letters, decimal digits, and a limited set of punctuation marks and
symbols.
unreserved = alphanum | mark
mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")"
Unreserved characters can be escaped without changing the semantics
of the URI, but this should not be done unless the URI is being used
in a context that does not allow the unescaped character to appear.