Posts

iOS Push Notification with HTTP2

Setup iOS APNS with HTTP/2 Overview: There're one issue while sending iOS notification to multiple devices with old method (send by ftp write stream). Let say you send to 100 devices, ftp write work likes this: 1. connect to APNS Server 2. for each device: send notification by using device_token & payload 3. disconnect In step 2, if there're 1 invalid token (there're many reason make a token invalid: expired, wrong cert, wrong format...etc) the connection will be block without status from APNS Server, if you want to check the status, you have to wait at least 0.5s-1s and using ftp-read to read the status. It's mean you have to check status after every ftp-write and re-connect again if there're an invalid token.  So, to send to 100 devices, you need 50 seconds, that's too long. At WWDC 2015, Apple has introduce a  new notification api by using HTTP/2 This api allow you to send notification as a post request or curl and get the result ...

How to handle iOS Push Notification

Image
Handle iOS Push Notification Handle push notification on iOS is quite hard if you don't understand it. In short topic, I on;y want to present how I handle when user tap on push notification when app is in active/background or killed. First, these are few important notes that you need to keep in mind: - APNS have sandbox & prod certificates, don't forget when you run the app in debug mode, you have to use sandbox. - The registration token cannot be shared, sandbox token cannot be use for prod and vice versa. Others tut: - Apple Documents -  APNS with HTTP2 Generate Push Certificate: cert_file="mobisys_prod_apns.cer" key_file="mobisys_prod_apns.p12" openssl x509 -in $cert_file -inform der -out pem_cert.pem openssl pkcs12 -nocerts -in $key_file -out pem_key.pem cat pem_cert.pem pem_key.pem > PushCert.pem Common Mistakes - using wrong certificate (APNS will return error) / wrong passphrase (in script will retunr error) - using in...

FFmpeg Tutorial (1)

FFmpeg is a leading source for encode/decode video, audio and widely use But,... the only problem is ffmpeg nearly don't have enough documents I'm currently working with ffmpeg and live streaming, And I'll note here some experience I meet while working and investigate ffmpeg :) OK, first, this is some useful link: https://www.ffmpeg.org/ http://dranger.com/ffmpeg/ <- some code on this site is depricated, but this still useful to understand how ffmpeg work, how to display movie, and some issues https://github.com/chelyaev/ffmpeg-tutorial/issues/11 <- this is same as dranger but updated sourcecode (still have one problem with stereo planar audio, you will hear noise instead of correct audio, using this to resample: https://github.com/illuusio/ffmpeg-tutorial) And this is some term you should to know  (google it for better result if you don't understand what I explain:D) > streaming + split video file into frames and send to client buffer ...

Mac OS - How to set multi owner for file / dir

Are you using multi profiles on mac ? Are you have a dir and file want to share with these profiles ? (for me, this is dropbox) But when read/write in these files, you usually be asked for password ?  The solution is add more owner to this file (by mouse), but when you need to add more dir, or sub dirs/files => so, using mouse and UI is terrible in this case. +_+! Mac OS have another mod call ACL - Access Control Lists which can help you (for full of docs, please read here:  mac osx acl ) in this post, I just want to show a some simple mod I use: read/write, and how to use it: - this is basic command structure (note as parenthesis) $ chmod +a “<user or group> allow <permission>” - view list of permission $ ls -le to show acl permissions - dirs permission: directory: list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit,di...

How to add custom media codec to pjsip

How to add custom media codec to pjsip Hi, in this post, I will show you how to add a custom codec to pjsip 2.2.1 Introduction: http://www.pjsip.org pjsip is a very strong and widely use in voip. you can combine pjsip with kamailio, stund, turn server, freeswitch to build chat application like Skype with many well feature like message, call, conversation.v.v. http://www.opus-codec.org opus is a lightweight media codec with very good quality but also cost minimum bandwidth (you can customize it bitrate yourself) to port opus codec you should choose a codec and follow it config (gsm for example) (This tutorial I read from http://www.piemontewireless.net/ , but now, this link is no longer exist) A little bit you need to know about pjsip build system (make file) pjsip use a set of make files to build, if you familiar with gnumake, it’s very easy to understand pjsip. but if you are not, here are some tips to help you easily maintain pjsip and solved bug when buid notice abou...