Eu posso enviar mensagens de texto por SMS usando o comando:
$ /usr/share/ofono/scripts/send-sms /ril_0 07123456789 "iorem ipsum est" 0
Onde /ril_0
é o cartão SIM / modem, 07123456789
é o número de telefone, "iorem ipsum est"
é o texto a ser enviado e o último 0
é (eu acho) um booleano determinando se o script solicitará um relatório de entrega.
Isso funciona bem e produz a saída:
Send message using modem /ril_0 ...
/ril_0/message_20C76858222F2CDF61342FC317BF53AC4B763441
No entanto, isso parece não funcionar:
$ echo '"iorem ipsum est"' > textfile
$ /usr/share/ofono/scripts/send-sms /ril_0 07123456789 $(cat textfile) 0
Eu tentei algumas permutações, backticks e assim por diante; Nenhum deles funciona e todos produzem uma saída como essa:
Send message using modem /ril_1 ...
Traceback (most recent call last):
File "/usr/share/ofono/scripts/send-sms", line 31, in <module>
mm.SetProperty("UseDeliveryReports", dbus.Boolean(int(sys.argv[3])))
ValueError: invalid literal for int() with base 10: '"iorem'
/ril_1
é onde o segundo cartão SIM estaria (se houvesse um), e eu acho que o resto é um rastreio de pilha?
Por que vale a pena, isso funciona bem:
$ echo '"iorem"' > textfile
$ /usr/share/ofono/scripts/send-sms /ril_0 07123456789 $(cat textfile) 0
Então, eu acho que o problema está no modo como $()
manipula a saída contendo espaço em branco?
Eu colei o conteúdo de /usr/share/ofono/scripts/send-sms
no link (e, claro, a fonte está disponível para download no Ubuntu, aqui < href="http://packages.ubuntu.com/en/vivid/ofono-scripts"> link ).
Eu realmente não quero mexer com o script Python original (mesmo se eu soubesse algum Python, o que eu não sei!), mas se não houver uma solução shell que eu não saiba (algo usando canos ou xargs, talvez?) Eu não seria contra a idéia de outro script que faz uso do original, ou algo assim.
Meu sistema é um BQ Aquaris rodando 15.04 (r23). Caso isso faça alguma diferença, estou executando todos esses comandos via ssh em vez de digitá-los no telefone.
Qualquer ajuda muito apreciada. Ah, e se eu deveria postar isso em outro lugar, por exemplo, no Stack Overflow ou algo assim por causa de todo o Python, por favor me avise!