Let's start with implementing the base architecture for UTF8 caller ID's
authorOlle Johansson <oej@edvina.net>
Fri, 23 Nov 2007 09:40:02 +0000 (09:40 +0000)
committerOlle Johansson <oej@edvina.net>
Fri, 23 Nov 2007 09:40:02 +0000 (09:40 +0000)
so we can handle multiple formats properly. This is not carved in stone,
but a proposal to start with.

We need to add support for transliterations as well as UTF8 handling,
propably with libiconv. Murf is looking into that for the dialplan.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89531 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/channel.h

index 40a2f3a..812c01a 100644 (file)
@@ -203,13 +203,29 @@ struct ast_datastore {
  * \note All string fields here are malloc'ed, so they need to be
  * freed when the structure is deleted.
  * Also, NULL and "" must be considered equivalent.
+ * 
+ * SIP and IAX2 has utf8 encoded Unicode caller ID names.
+ * In some cases, we also have an alternative (RPID) E.164 number that can be used
+ * as caller ID on numeric E.164 phone networks (zaptel or SIP/IAX2 to pstn gateway).
+
+ * SIP and IAX2 will prefer the cid_utf8 if it exists, otherwise use the cid_name.
+ * \todo Implement this in chan_sip.c and chan_iax2.c
+ *
+ * \todo Implement settings for transliteration between UTF8 caller ID names in
+ *       to Ascii Caller ID's (Zaptel). Östen Åsklund might be transliterated into
+ *      Osten Asklund or Oesten Aasklund depending upon language and person...
+ *      We need automatic routines for incoming calls and static settings for
+ *      our own accounts.
  */
 struct ast_callerid {
        char *cid_dnid;         /*!< Malloc'd Dialed Number Identifier */
        char *cid_num;          /*!< Malloc'd Caller Number */
-       char *cid_name;         /*!< Malloc'd Caller Name */
+       char *cid_name;         /*!< Malloc'd Caller Name (ASCII) */
        char *cid_ani;          /*!< Malloc'd ANI */
        char *cid_rdnis;        /*!< Malloc'd RDNIS */
+       char *cid_utf8;         /*!< Malloc'd Caller ID name in utf8 */
+       char *cid_domain;       /*!< Malloc'd Caller ID domain (ascii. IDN supported) */
+       char *cid_e164;         /*!< Malloc'd Alternative Caller ID E.164 (alternative to SIP/IAX2 utf8 uri, RPID) */
        int cid_pres;           /*!< Callerid presentation/screening */
        int cid_ani2;           /*!< Callerid ANI 2 (Info digits) */
        int cid_ton;            /*!< Callerid Type of Number */