@@ -737,7 +737,7 @@ void callerid_free(struct callerid_state *cid)
737
737
}
738
738
739
739
static int callerid_genmsg (char * msg , int size , const char * number , const char * name , int flags , int format ,
740
- const char * ddn , int redirecting )
740
+ const char * ddn , int redirecting , const char * tz )
741
741
{
742
742
struct timeval now = ast_tvnow ();
743
743
struct ast_tm tm ;
@@ -746,7 +746,7 @@ static int callerid_genmsg(char *msg, int size, const char *number, const char *
746
746
int i , x ;
747
747
748
748
/* Get the time */
749
- ast_localtime (& now , & tm , NULL );
749
+ ast_localtime (& now , & tm , tz );
750
750
751
751
ptr = msg ;
752
752
@@ -850,8 +850,7 @@ static int callerid_genmsg(char *msg, int size, const char *number, const char *
850
850
return (ptr - msg );
851
851
}
852
852
853
- int ast_callerid_vmwi_generate (unsigned char * buf , int active , int type , struct ast_format * codec ,
854
- const char * name , const char * number , int flags )
853
+ int ast_callerid_vmwi_generate (unsigned char * buf , int active , int type , struct ast_format * codec , const char * name , const char * number , int flags )
855
854
{
856
855
char msg [256 ];
857
856
int len = 0 ;
@@ -867,7 +866,7 @@ int ast_callerid_vmwi_generate(unsigned char *buf, int active, int type, struct
867
866
msg [0 ] = 0x82 ;
868
867
869
868
/* put date, number info at the right place */
870
- len = callerid_genmsg (msg + 2 , sizeof (msg )- 2 , number , name , flags , CID_TYPE_MDMF , "" , -1 );
869
+ len = callerid_genmsg (msg + 2 , sizeof (msg )- 2 , number , name , flags , CID_TYPE_MDMF , "" , -1 , NULL );
871
870
872
871
/* length of MDMF CLI plus Message Waiting Structure */
873
872
msg [1 ] = len + 3 ;
@@ -945,6 +944,13 @@ int callerid_generate(unsigned char *buf, const char *number, const char *name,
945
944
946
945
int callerid_full_generate (unsigned char * buf , const char * number , const char * name , const char * ddn , int redirecting ,
947
946
int flags , int format , int callwaiting , struct ast_format * codec )
947
+ {
948
+ /* Default time zone is NULL (system time zone) */
949
+ return callerid_full_tz_generate (buf , number , name , ddn , redirecting , flags , format , callwaiting , codec , NULL );
950
+ }
951
+
952
+ int callerid_full_tz_generate (unsigned char * buf , const char * number , const char * name , const char * ddn , int redirecting ,
953
+ int flags , int format , int callwaiting , struct ast_format * codec , const char * tz )
948
954
{
949
955
int bytes = 0 ;
950
956
int x , sum ;
@@ -955,7 +961,7 @@ int callerid_full_generate(unsigned char *buf, const char *number, const char *n
955
961
float ci = 0.0 ;
956
962
float scont = 0.0 ;
957
963
char msg [256 ];
958
- len = callerid_genmsg (msg , sizeof (msg ), number , name , flags , format , ddn , redirecting );
964
+ len = callerid_genmsg (msg , sizeof (msg ), number , name , flags , format , ddn , redirecting , tz );
959
965
if (!callwaiting ) {
960
966
/* Wait a half a second */
961
967
for (x = 0 ; x < 4000 ; x ++ )
@@ -1101,11 +1107,11 @@ int ast_callerid_parse(char *input_str, char **name, char **location)
1101
1107
}
1102
1108
1103
1109
static int __ast_callerid_generate (unsigned char * buf , const char * name , const char * number ,
1104
- const char * ddn , int redirecting , int pres , int qualifier , int format , int callwaiting , struct ast_format * codec )
1110
+ const char * ddn , int redirecting , int pres , int qualifier , int format , int callwaiting , struct ast_format * codec , const char * tz )
1105
1111
{
1106
1112
int flags = 0 ;
1107
1113
1108
- ast_debug (1 , "Caller ID Type %s: Number: %s, Name: %s, Redirecting No : %s, Redirecting Reason: %s, Pres: %s, Qualifier: %s, Format: %s\n" ,
1114
+ ast_debug (1 , "Caller ID Type %s: Number: %s, Name: %s, DDN : %s, Redirecting Reason: %s, Pres: %s, Qualifier: %s, Format: %s\n" ,
1109
1115
callwaiting ? "II" : "I" , number , name , ddn , ast_redirecting_reason_describe (redirecting ),
1110
1116
ast_named_caller_presentation (pres ), qualifier ? "LDC" : "None" , format == CID_TYPE_MDMF ? "MDMF" : "SDMF" );
1111
1117
@@ -1126,30 +1132,43 @@ static int __ast_callerid_generate(unsigned char *buf, const char *name, const c
1126
1132
flags |= CID_QUALIFIER ;
1127
1133
}
1128
1134
1129
- return callerid_full_generate (buf , number , name , ddn , redirecting , flags , format , callwaiting , codec );
1135
+ return callerid_full_tz_generate (buf , number , name , ddn , redirecting , flags , format , callwaiting , codec , tz );
1130
1136
}
1131
1137
1132
1138
int ast_callerid_generate (unsigned char * buf , const char * name , const char * number , struct ast_format * codec )
1133
1139
{
1134
- return __ast_callerid_generate (buf , name , number , "" , -1 , 0 , 0 , CID_TYPE_MDMF , 0 , codec );
1140
+ return __ast_callerid_generate (buf , name , number , "" , -1 , 0 , 0 , CID_TYPE_MDMF , 0 , codec , NULL );
1135
1141
}
1136
1142
1137
1143
int ast_callerid_callwaiting_generate (unsigned char * buf , const char * name , const char * number , struct ast_format * codec )
1138
1144
{
1139
- return __ast_callerid_generate (buf , name , number , "" , -1 , 0 , 0 , CID_TYPE_MDMF , 1 , codec );
1145
+ return __ast_callerid_generate (buf , name , number , "" , -1 , 0 , 0 , CID_TYPE_MDMF , 1 , codec , NULL );
1140
1146
}
1141
1147
1142
1148
int ast_callerid_full_generate (unsigned char * buf , const char * name , const char * number ,
1143
1149
const char * ddn , int redirecting , int pres , int qualifier , int format , struct ast_format * codec )
1144
1150
{
1145
- return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , format , 0 , codec );
1151
+ return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , format , 0 , codec , NULL );
1146
1152
}
1147
1153
1148
1154
int ast_callerid_callwaiting_full_generate (unsigned char * buf , const char * name , const char * number ,
1149
1155
const char * ddn , int redirecting , int pres , int qualifier , struct ast_format * codec )
1150
1156
{
1151
1157
/* Type II Caller ID (CWCID) only uses MDMF, so format isn't an argument */
1152
- return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , CID_TYPE_MDMF , 1 , codec );
1158
+ return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , CID_TYPE_MDMF , 1 , codec , NULL );
1159
+ }
1160
+
1161
+ int ast_callerid_full_tz_generate (unsigned char * buf , const char * name , const char * number ,
1162
+ const char * ddn , int redirecting , int pres , int qualifier , int format , struct ast_format * codec , const char * tz )
1163
+ {
1164
+ return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , format , 0 , codec , tz );
1165
+ }
1166
+
1167
+ int ast_callerid_callwaiting_full_tz_generate (unsigned char * buf , const char * name , const char * number ,
1168
+ const char * ddn , int redirecting , int pres , int qualifier , struct ast_format * codec , const char * tz )
1169
+ {
1170
+ /* Type II Caller ID (CWCID) only uses MDMF, so format isn't an argument */
1171
+ return __ast_callerid_generate (buf , name , number , ddn , redirecting , pres , qualifier , CID_TYPE_MDMF , 1 , codec , tz );
1153
1172
}
1154
1173
1155
1174
char * ast_callerid_merge (char * buf , int bufsiz , const char * name , const char * num , const char * unknown )
0 commit comments