Implementation of oblivious transfer with symmetric primitive? I'm now reading this paper Extending Oblivious Transfers Efficiently. I understand how to reduce an OT cost.
OT extension is a method that replaces an OT with many base-OTs.
But I'm still not sure how to implement each base-OT.


How is this possible?
Any references?


I prefer more recent construction.
You can take a look at LibOT, which is a C++ implementation of several OT extension protocols. 
In the Readme you can find a list with many base and extension Oblivious Transfer protocols.

A protocol that people use a lot is the Simplest OT (although it was announced that the security proof has a bug by one of the authors at the TPMPC2018 workshop).

Another popular option is PVW, the protocol by Peikert, Vaikuntanathan and Waters.
It has two variants. 
One DDH-based and another LWE-based.
The first one is particularly easy to understand and implement.