发短信过程中会有异常场景导致短信发送失败,这时需要有重发机制,本文讲述一些特定场景下的短信重发机制。
1.短信发送后网络无响应
应用端编辑短信进行发送,Modem侧会通过SMS_CP_DATA发到网络,等待网络返回CP_ACK,如果超过设置的timer未收到网络返回CP_ACK,就会触发短信重发机制。
这里会有两个定时器,TC1定时器会被TR1限制,按照默认设置,即TR1时间端内TC1最多超时两次,触发两次短信重发。
Timer不是3GPP要求,用户可以自己更改。
SMS_TIMER_TR1 is 45S(RP DATA)
SMS_TIMER_TC1 is 21S(CP DATA)
2.短信发送后网络返回错误
终端收到网络上报TPDU-NACK,错误码为临时性网络错误,触发重试机制。
针对这种错误,细分几种不同的重发方式。
1)终端同时支持CS/PS域发SMS能力
如果在CS域发短信失败,可以尝试在PS域重发短信,若PS域重发也失败,再切到CS域重发。重发时间用户可以自行设置,默认为2S .
CS/PS域短信能力,用户也可以自行设置,例如设置为CS Only关掉PS域发送SMS能力。
2)不支持PS域SMS能力
仅在CS域上重发,重发定时器TL_RETRY_TIMER 默认配置为12S,用户可以自行设置。
3)电话场景
DSDS终端,SIM1正在做CS电话业务